Req #40587 [Com]: Attempt to call undefined function gives a fatal error instead of recoverable
| From: | matteosistisette at gmail dot com | Date: | Mon, 14 Nov 2011 21:03:21 +0000 |
| Subject: | Req #40587 [Com]: Attempt to call undefined function gives a fatal error instead of recoverable | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-165133@lists.php.net to get a copy of this message | ||
Edit report at https://bugs.php.net/bug.php?id=40587&edit=1
ID: 40587
Comment by: matteosistisette at gmail dot com
Reported by: mathiasrav at gmail dot com
Summary: Attempt to call undefined function gives a fatal
error instead of recoverable
Status: Bogus
Type: Feature/Change Request
Package: Feature/Change Request
Operating System: WinXP
PHP Version: 5.2.1
Block user comment: N
Private report: N
New Comment:
If this is not a bug, this is a HUGE design flaw that MUST be fixed, so is there
any difference?
If calls to undefined functions were detected at compile time, this would be
fine. But since they are detected at runtime, you simply can't debug your code
from such errors if a misspelled call happens to be within an if clause. Not
being able to catch these errors means not being able to debug them, which
means, the language's designed is flawed.
A "Fatal error: call to undefined function" SHOULD be a E_RECOVERABLE, not a
E_ERROR.
Anything that happens at runtime and can conceivably be recovered from, must be
a E_RECOVERABLE.
Previous Comments:
------------------------------------------------------------------------
[2007-02-21 23:20:50] derick@php.net
Thank you for taking the time to write to us, but this is not
a bug. Please double-check the documentation available at
http://www.php.net/manual/ and the instructions on how to
report
a bug at http://bugs.php.net/how-to-report.php
.
------------------------------------------------------------------------
[2007-02-21 23:06:37] mathiasrav at gmail dot com
A little change to the description-section - PHP doesn't crash, it simply halts script
execution. The *script* "crashes".
------------------------------------------------------------------------
[2007-02-21 23:03:16] mathiasrav at gmail dot com
Description:
------------
If you try to call an undefined function, PHP raises an E_ERROR and crashes - not a catchable
E_RECOVERABLE_ERROR.
This isn't a problem for web-related scripts, but for maintainence/shell-like scripts, this can
be a help. I have a script with an idle-loop that calls (includes) module-files, and if a change to
one of these has a typo, all socket connections and the like are killed.
Reproduce code:
---------------
<?php
function returntrue(){return true;}
seterrorhandler('returntrue', E_RECOVERABLE_ERROR);
qweasd();
echo 'Carrying on...';
?>
Expected result:
----------------
The call to qweasd() should return false or null. If the programmer has made the script able to
recover from calls to unknown functions, he must have written code that can tell the difference
between the return code from a known and an unknown function.
Actual result:
--------------
The script halts.
------------------------------------------------------------------------
--
Edit this bug report at https://bugs.php.net/bug.php?id=40587&edit=1