Edit report at http://bugs.php.net/bug.php?id=9250&edit=1
ID: 9250 Comment by: Reported by: dsifry at linuxcare dot com Summary: Nested Functions are BAD, they make for inefficient debugging Status: Bogus Type: Feature/Change Request Package: Feature/Change Request Operating System: Any PHP Version: 4.0.4pl1 New Comment: nested functions make for grate walkers in recursive functions BUT ! ONLY if the scope is limited with in the outer function (witch it isn't) AND can use same variables as outer function Previous Comments: ------------------------------------------------------------------------ [2002-01-06 13:15:00] j...@php.net brackets are used for other controll structures as well, so disabling nested functions do not solve the problem. ->bogus ------------------------------------------------------------------------ [2001-02-14 04:10:46] dsifry at linuxcare dot com If you have a missing close-bracket "}" somewhere in your code, the PHP parser tells you that the error is at the last line. If you have a multi-hundred or thousand line file, this makes life a bitch. Rasmus tells me that the reason for this behavior is because functions can be nested, which means that: function a { function b { } } is OK. This is a silly feature. Why do you have it, for scoping reasons? It means that you can't effectively tell where syntax errors occur. Suggestion: Either make nested functions turned off by default but you can turn them on with a PHP global variable, like $PHP_BIZARRO_NESTED_FUNCTIONS = 1; or have the parser syntax set up so that it marks where a possible syntax error occurred (IOW it sees a possible nested function, but it could also be a syntax error), and if it reaches the end of the file with a missing "}" or two, that it displays the location where it parsed the nested function. ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/bug.php?id=9250&edit=1