看PHP手册的时候发现了下面这样一段代码: <div class="codetitle"><a style="CURSOR: pointer" data="62241" class="copybut" id="copybut62241" onclick="doCopy('code62241')"> 代码如下:<div class="codebody" id="code62241"> <?php function Test() { static $count = 0; $count++; echo $count; if ($count < 10) { Test(); } $count--; } ?> 执行结果如下: 这是一个递归的函数,声明的静态变量count记录次数,输出1~10。 我在看的时候有个疑惑,递归调用的时候 static $count = 0; 语句会重复执行,这为什么不会导致count变量被重复赋值呢?带着这个疑问和同事研究了一下,测试用代码如下: <div class="codetitle"><a style="CURSOR: pointer" data="53955" class="copybut" id="copybut53955" onclick="doCopy('code53955')"> 代码如下:<div class="codebody" id="code53955"> <?php echo 'start '; static $a = 10; echo "$a "; unset($GLOBALS['a']); echo "$a "; static $a = 20; echo "$a "; $GLOBALS['a'] = 10; echo "$a "; static $a = 30; echo "$a "; unset($GLOBALS['a']); echo "$a "; static $a; echo "$a "; static $a = 40; echo "$a "; $a = 100; echo "$a "; static $a = 50; echo "$a "; static $a = 4; echo "$a "; echo 'end '; exit; ?>
<DIV style="LINE-HEIGHT: 1.5; FONT-FAMILY: 宋体,Verdana,Arial,Helvetica,sans-serif"><SPAN style="FONT-FAMILY: Verdana" face="Verdana">执行结果如下: <SPAN style="LINE-HEIGHT: 1.5; FONT-FAMILY: Verdana">start
<DIV style="LINE-HEIGHT: 1.5; FONT-FAMILY: 宋体,sans-serif">
-
- Notice: Undefined variable: a
-
-
-
- Notice: Undefined variable: a
-
-
-
-
-
-
(编辑:李大同)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|