ID: 25108 Updated by: [EMAIL PROTECTED] Reported By: mailling at gmx dot co dot uk -Status: Open +Status: Closed Bug Type: Documentation problem Operating System: Windows 2000 PHP Version: 4CVS-2003-08-16 (stable) New Comment:
This bug has been fixed in the documentation's XML sources. Since the online and downloadable versions of the documentation need some time to get updated, we would like to ask you to be a bit patient. Thank you for the report, and for helping us make our documentation better. include: "If there is no return statement inside an included file, implicit 'return 1;' is added at the end of the file. If the file can't be included, false is returned." include_once, require_once: "Return values are the same as with include(). If the file was already included, this function returns true." Previous Comments: ------------------------------------------------------------------------ [2003-08-16 10:45:50] [EMAIL PROTECTED] 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 ------------------------------------------------------------------------ [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
