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

Reply via email to