PHP error_reporting issue, even local = On

111 views Asked by At

in my php.ini the display_errors setting is set to Off by standard. Usually I started my index.php file with

ini_set('display_errors', 'On');
error_reporting(E_ALL & ~E_NOTICE);

which all worked fine for my needs.

Recently, the error reporting did not work anymore. notices have been thrown out though, so:

<?php echo $i ?>

throws a notice "undefined constant"

<?php badbadbad ?>

simply returns a blank page instead of a Fatal Error message.

Checking phpinfo() shows that the Master value for display_errors is Off, while the local value is set to On (as expected). Nevertheless I could not get any error message.

Changing my php.ini setting for display_errors = On gets me around this issue, but should not be a solution for ever.

Any hints?

Thanks & brgds David

1

There are 1 answers

0
hanzi On

I think the reason your second example fails is that it's actually a Parse Error.

When executing code, PHP has to first parse and compile the whole file it's going to execute and then only after that it can run it. If there's a problem during parsing, even if the problem is at the end of the file, none of the file's code will be executed -- so neither will your ini_set() and error_reporting() statements.

If the erroneous code is in the same file as said statements, there's not much you can do. If it's in another file that is used with include or require, make sure that the including calls are made after setting the new error reporting values. At least that works for me with PHP >= 5.4.