On 7/6/06, Martin Marques <martin@bugs.unl.edu.ar> wrote:
On Wed, 5 Jul 2006, [EMAIL PROTECTED] wrote:
> Hello all,
>
> According to the PHP Manual, when require or require_once failes, an
> E_ERROR is triggered: "require() and include() are identical in every way
> except how they handle failure. include() produces a Warning while
> require() results in a Fatal Error." (With 'Fatal Error' being a link to
> E_ERROR).
>
> Thing is, when using a custom error handler via set_error_handler(), it
> appears to be triggering an E_WARNING, not an E_ERROR. Using PHP 5.1.4
> under Linux.
>
> There are one of three possibilities: I am suffering from a lapse in
> lucidity (common), the manual is wrong (possible), or PHP is broken
> somehow (unlikely). I'm guessing it's the first, but what am I doing
> wrong? I'd like to get a second opinion before submitting a bug. I
> searched bugs.php.net but was unable to find anything relevant for 5.1.4.
>
> Code:
> function default_error_handler($code, $error, $file, $line) {
> switch ($code) {
> case E_ERROR:
> die ("Error: $error");
> case E_WARNING:
> die("Warning: $error");
> default:
> die("Something else entirely: $error");
> }
> }
What happens if you put breaks after the die()? This shouldn't be
necesary, but it wouldn't hurt to try. ;-)
As I see in the example of the PHP manual, a break is put even after an
exit(1) call.
> set_error_handler('default_error_handler');
> require('This file does not exist. At least not here!');
Have you tried this handler with something more fatal, like a missing
semi-colon or a } missmatch?
That will cause a parse error and the script won't even run.
--
Postgresql & php tutorials
http://www.designmagick.com/
--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php