ID:               25108
 Updated by:       [EMAIL PROTECTED]
 Reported By:      mailling at gmx dot co dot uk
-Status:           Assigned
+Status:           Open
-Bug Type:         Scripting Engine problem
+Bug Type:         Documentation problem
 Operating System: Windows 2000
 PHP Version:      4CVS-2003-08-16 (stable)
 Assigned To:      derick
 New Comment:

Hmm, this works for me and it returns the correct result:

int(1)
bool(true)
bool(false)

It's correct because:
if there is no return statement in your include file, an implicit
"return 1;" is added. The second require_once does not include
anything, so the return 1 is never executed, but instead the return
value returns the success of the return_once call. (It was a success
because the file could be included the first time). The include_once()
fails because the file exists, and thus include_once() returns
bool(false).

I think you have a "return;" inside your base.inc.php file (or
something similar like a die()) and thus the first require_once returns
"NULL" (as you're overwriting the default implicit "return 1;".

This should definitely be added to the docs though, as they don't even
talk about return values from include/require functions. (Atleast I
couldn't find it).

Derick


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

[2003-08-16 10:34:27] [EMAIL PROTECTED]

Having a look at this...

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

[2003-08-16 09:32:59] mailling at gmx dot co dot uk

Description:
------------
It seems that the variable returned by a correct insert changed from
the last PHP version. Is it a change in the behavior or a bug?
If I include a file and everything is fine, it returns NULL, but it
should return 1 or true (it does true, but the documentation says 1)

Reproduce code:
---------------
// The file base.inc.php exists, base.inc.php2 doesn't

$a = require_once(PROJECT_BASE . '/include/base.inc.php');
$b = require_once(PROJECT_BASE . '/include/base.inc.php');
$c = include_once(PROJECT_BASE . '/include/base.inc.php2');
var_dump($a); // return NULL
var_dump($b); // return true
var_dump($c); // return false

Expected result:
----------------
true (or 1?)
true (or 1?)
false

Actual result:
--------------
NULL
true
false


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


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


-- 
PHP Documentation Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to