From:             [EMAIL PROTECTED]
Operating system: Linux
PHP version:      4.3.0
PHP Bug Type:     Scripting Engine problem
Bug description:  return behaviour differs between include and require

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 bug report at http://bugs.php.net/?id=21725&edit=1
-- 
Try a CVS snapshot:         http://bugs.php.net/fix.php?id=21725&r=trysnapshot
Fixed in CVS:               http://bugs.php.net/fix.php?id=21725&r=fixedcvs
Fixed in release:           http://bugs.php.net/fix.php?id=21725&r=alreadyfixed
Need backtrace:             http://bugs.php.net/fix.php?id=21725&r=needtrace
Try newer version:          http://bugs.php.net/fix.php?id=21725&r=oldversion
Not developer issue:        http://bugs.php.net/fix.php?id=21725&r=support
Expected behavior:          http://bugs.php.net/fix.php?id=21725&r=notwrong
Not enough info:            http://bugs.php.net/fix.php?id=21725&r=notenoughinfo
Submitted twice:            http://bugs.php.net/fix.php?id=21725&r=submittedtwice
register_globals:           http://bugs.php.net/fix.php?id=21725&r=globals
PHP 3 support discontinued: http://bugs.php.net/fix.php?id=21725&r=php3
Daylight Savings:           http://bugs.php.net/fix.php?id=21725&r=dst
IIS Stability:              http://bugs.php.net/fix.php?id=21725&r=isapi
Install GNU Sed:            http://bugs.php.net/fix.php?id=21725&r=gnused

Reply via email to