| Posted by Oli Filth on 12/05/05 21:31 
comp.lang.php said the following on 05/12/2005 19:02:> [PHP]
 > function blah($item) {
 >   	if (!isset($baseDir)) {
 >      	 static $baseDir = '';
 >      	 $baseDir = $item;
 > 	 print_r("baseDir = $baseDir\n");
 >     	}
 >
 >        $dirID = opendir($item);
 >        while (($fyl = readdir($dirID)) !== false) {
 >          if (is_dir("$baseDir/$fyl")) blah($item);
 >          // DO OTHER STUFF IF IT IS A FILE
 >        }
 > }
 > [/PHP]
 >
 > I am using PHP 4.3.2 and the following occurs within blah() :
 >
 > [Quote]
 > baseDir = /home/me/stuff
 > baseDir = /home/me/stuff/.
 > baseDir = /home/me/stuff/./..
 > [/Quote]
 >
 > I was under the impression that a static variable retains its value
 > throughout a function (or method) recursive memory stack.  However, it
 > changes everytime because it apparently loses its set value.
 
 You are using $baseDir before you have declared it static, so PHP treats
 it as non-static.
 
 
 --
 Oli
 [Back to original message] |