RE: PHP 4.0 Bug #9064 Updated: Functions inside functions cause errors if the outer function is called twice.

From: Date: Fri, 02 Feb 2001 09:07:51 +0000
Subject: RE: PHP 4.0 Bug #9064 Updated: Functions inside functions cause errors if the outer function is called twice.
References: 1  Groups: php.dev 
Request: Send a blank email to php-dev+get-45594@lists.php.net to get a copy of this message
Shouldn't you at least be able to register the "nested function" as 'static? This causes syntax errors in 4.0.4pl1. ie: <?php function test() { static function test2() { echo "hi"; } test2(); } test(); test(); test(); ?> > -----Original Message----- > From: Bug Database [mailto:php-dev@lists.php.net] > Sent: Friday, February 02, 2001 5:14 PM > To: chriskl@familyhealth.com.au > Subject: PHP 4.0 Bug #9064 Updated: Functions inside functions cause > errors if the outer function is called twice. > > > ID: 9064 > Updated by: hholzgra > Reported By: chriskl@familyhealth.com.au > Old-Status: Open > Status: Closed > Bug Type: Scripting Engine problem > Assigned To: > Comments: > > php has no "nested function" feature like you'll find in PASCAL > or in gcc if you enable the feature > > what happens here is that test2 is registered on execution of > test in the global namespace, and when you call test a second time > it cannot register test2 again > > (the engine shouldn't accept nested functions at all i think) > > Previous Comments: > ------------------------------------------------------------------ > --------- > > [2001-02-01 22:18:32] chriskl@familyhealth.com.au > This script fails with: > > <b>Fatal error</b>: Cannot redeclare test2() in <b>-</b> on line > <b>4</b><br> > > <?php > > function test() { > function test2() { > echo "hi"; > } > > test2(); > } > > test(); > test(); > test(); > > ?> > > ------------------------------------------------------------------ > --------- > > > Full Bug description available at: http://bugs.php.net/?id=9064 >

« previous php.dev (#45594) next »