RE: PHP 4.0 Bug #9064 Updated: Functions inside functions cause errors if the outer function is called twice.
| From: | Christopher Kings-Lynne | 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
>