Re[2]: [PHP] BUG in recursion

From: Date: Sun, 31 Mar 2002 00:16:29 +0000
Subject: Re[2]: [PHP] BUG in recursion
References: 1 2  Groups: php.general 
Request: Send a blank email to php-general+get-90826@lists.php.net to get a copy of this message
Hi! This I simply don't understand why this code executes that way. So there is only inportant to put return after recursive call and it works like i wan't. I sometimes write small C programs and I don't remeber that code like this have to work that way.... Hm. -- bye, Uros mailto:uros.gruber@sir-mag.com Sunday, March 31, 2002, 1:10:30 AM, you wrote: LTW> On Sat, 2002-03-30 at 15:59, Uros Gruber wrote: >> Hi! >> >> This is a code >> >> function Test() >> { >> static $count = 0; >> >> $count++; >> echo $count; >> if ($count < 10) { >> Test (); >> } >> echo "j"; >> } >> test(); >> >> Output is >> >> 12345678910jjjjjjjjjj >> >> Why is there 10 j at the and. If this would work it can be >> only one. If $count is grater than 10 it does not call itself >> but end. Is this maybe a bug or what. LTW> No, there should be 10 of them, since every time Test() returns, LTW> the function carries on executing. If you only want one 'j' LTW> printed then put a return statement after the call to Test(): LTW> function Test() LTW> { LTW> static $count = 0; LTW> $count++; LTW> echo $count; LTW> if ($count < 10) { LTW> Test(); LTW> return; LTW> } LTW> echo "j"; LTW> } LTW> Test(); LTW> Cheers! LTW> Torben LTW> -- LTW> Torben Wilson <torben@php.net> LTW> http://www.thebuttlesschaps.com LTW> http://www.hybrid17.com LTW> http://www.inflatableeye.com LTW> +1.604.709.0506

« previous php.general (#90826) next »