Currently, PHP would trigger (and log if logging is enabled) E_NOTICE ‘errors’ when accessing undefined variables and array indexes. Is there a way to make it abort on these, so that I know I don’t miss any. Frankly, IMO, far too often a script SHOULD abort on such condition anyway, as it will inevitably break something farther down the execution path. In all other cases there is the ‘@’ operator, that’s what it is for, right?
I know I can use a custom error handler and abort on any condition. In fact I do use one already, but I do have places where I trigger notices myself (granted, E_USER_NOTICE instead of PHP’s own E_NOTICE), and I also always return false letting PHP’s own internal handler do its job – logging and aborting on errors, continuing on everything else.
Then there are other cases where PHP produces E_NOTICE without me wanting to abort the script. Basically, there is no way for me to know if a particular E_NOTICE is a result of an unset variable or a totally harmless condition (which notices should be caused by anyway).
Has anyone a neat and non-hackish solution? Some recommended way of doing this?
Cheers.
I’m sure there is no native PHP way to do this.
Extending your already existent error handler to look into the error message (
stristr($errmsg, "undefined variable") ...) anddie()if necessary is the best (and only) way that comes to mind.