Parse errors
| From: | Tim Streater | Date: | Sun, 18 Mar 2012 17:32:00 +0000 |
| Subject: | Parse errors | ||
| Groups: | php.general | ||
| Request: | Send a blank email to php-general+get-317110@lists.php.net to get a copy of this message | ||
After recently omitting a semicolon from the end of a statement, and having the result be a
JavaScript error in an odd place, I'm trying to pin down just what PHP does with such errors. I
made a small test script to run at CLI, which does some echoes and then, after that, I miss out a
semicolon. On the command line, all I get is the parse error message with line number.
The script where I'd left the semicolon out of my production code is reached via AJAX, and
sends some results back. It consists of a number of functions, then the main code appears, starting
with two requires. The first such included file has some functions, puts out a header and does an
echo, and calls set_error_handler. It's in the second included file that the semicolon is
missed off (inside yet another function).
I would have expected that the results sent back would just consist of the Parse error: message, but
for some reason the echo done in the first included file shows up as well (this is important as it
frames the parse error message for me).
Is this the expected behaviour? The doc for set_error_handler says you can't use it to recover
from E_PARSE and the like, and the function I supply to it doesn't appear to be called. I was
just surprised that the initial echo statement's output made it back to the JavaScript side.
(I obviously don't expect to have parse errors show up in production, but having them nicely
visible and logged during testing is useful)
--
Cheers -- Tim