ID:               21725
 Updated by:       [EMAIL PROTECTED]
 Reported By:      [EMAIL PROTECTED]
-Status:           Open
+Status:           Verified
 Bug Type:         Scripting Engine problem
 Operating System: Linux
-PHP Version:      4.3.0
+PHP Version:      4.3.1-dev
 New Comment:

Simple test case:

test.php:

<?php
var_dump(include('foo.php'));
var_dump(require('foo.php'));
?>

foo.php:
<?php
return 'foo';
?>

Running test.php outputs:

string(3) "foo"
UNKNOWN:0



Previous Comments:
------------------------------------------------------------------------

[2003-01-18 07:12:07] [EMAIL PROTECTED]

when a return is made out of an included file (using 
include), the value is properly returned.  However, using 
the require statement instead results in values not being 
preperly returned from a return statement in included 
code. 
 
Example 
 
This function currently exists in a class and works. 
 
function execQuery( &$sql, $result_status, $file, $line ) 
{ 
        return include( dirname( __FILE__ 
)."/execQuery.php" ); 
  } 
 
This function DOES NOT WORK when I attempt the use the 
result it is not defined. 
function execQuery( &$sql, $result_status, $file, $line ) 
{ 
        return require( dirname( __FILE__ 
)."/execQuery.php" ); 
  } 
 
This is the contents of the file it includes 
 
<?php 
                $this->validateFileConstants( $file, 
$line, __FILE__, __LINE__ ); 
 
    if ( !is_string( $sql ) ) { 
      $this->{$this->log_func} ( "File: $file. Line: 
$line. \$sql is NOT a string. (%s, %d)",__FILE__, __LINE__ 
); 
    } 
 
    if ( !is_int( $result_status ) ) { 
      $this->{$this->log_func} ( "File: $file. Line: 
$line. \$sql is NOT a string. (%s, %d)", __FILE__, 
__LINE__ ); 
    } 
     
    if ( $this->conn == NULL ) { 
        $this->{$this->log_func} ( "File: $file. Line: 
$line. \$conn not open. (%s, %d)", __FILE__, __LINE__ ); 
    } 
 
    if ( pg_result_status( $rs = pg_query ( $this->conn, 
$sql ) ) !== $result_status ) { 
      /*pg_query returns false, can't use result_error.*/ 
      $this->{$this->log_func} ( "File: $file. Line: 
$line. Error executing. \"%s\" (%s, %d)" 
                              , pg_last_error(), __FILE__, 
__LINE__ ); 
    } 
 
    return $rs; 
?> 
 
 
This behavious is also inconsistent with tjhe document 
which reads that the onyl difference if a warning or Fatal 
Error. 
 
Josh. 

------------------------------------------------------------------------


-- 
Edit this bug report at http://bugs.php.net/?id=21725&edit=1

Reply via email to