On Fri, 2007-04-06 at 00:45 -0700, Karoly Negyesi wrote:
Hi,
So says the PHP manual about unset
"If a static variable is unset() inside of a function, unset() destroys the variable only in the context of the rest of a function. Following calls will restore the previous value of a variable."
This will lead to really weirdo stuff if you have:
function foo($refresh = FALSE) { static $storage; if ($refresh) { echo "refreshing\n"; unset($storage); }
if (!isset($storage)) { $storage = microtime(); } return $storage; } echo foo() ."\n"; echo foo(TRUE) ."\n"; echo foo() ."\n";
Observe how the third and the first results are the same as if the refresh did not happen.
Sounds like a good excuse for properly initializing your static's and reinitializing them when the need to be reset.