ID: 38024 Comment by: judas dot iscariote at gmail dot com Reported By: kermode at kermodebear dot org Status: Open Bug Type: Documentation problem Operating System: Ubuntu Linux PHP Version: Irrelevant New Comment:
this is the expected behaviour. first warning comes from PHP internal stuff and then a fatal error is raised. Previous Comments: ------------------------------------------------------------------------ [2006-07-06 16:09:21] kermode at kermodebear dot org Description: ------------ It appears that the require and require_once functions raise an E_WARNING before raising an E_ERROR. This is inconsistent with the documentation which implies that only an E_ERROR is raised when require fails. "The two constructs are identical in every way except how they handle failure. include() produces a Warning while require() results in a Fatal Error." Code below tested with PHP versions 4.4.2 on RedHat Linux and 5.1.4 on Ubuntu Linux. Same result. Reproduce code: --------------- function default_error_handler($code, $error, $file, $line) { switch ($code) { case E_WARNING: echo "Warning: $error"; break; default: echo "Something Else: $error"; } } set_error_handler('default_error_handler'); require('This file does not exist. At least not here!'); Expected result: ---------------- Fatal error: require(): Failed opening required 'This file does not exist. At least not here!' (include_path='.:/usr/lib/php:/usr/local/lib/php') in /home/kermode/test.php on line 12 Actual result: -------------- Warning: require(This file does not exist. At least not here!): failed to open stream: No such file or directory Fatal error: require(): Failed opening required 'This file does not exist. At least not here!' (include_path='.:/usr/lib/php:/usr/local/lib/php') in /home/kermode/test.php on line 12 ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=38024&edit=1