Re[2]: [PHP] BUG in recursion
| From: | Uros Gruber | 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