本文为大家讲解的是PHP中static关键字原理及使用方法,感兴趣的同学参考下。 看PHP手册的时候发现了下面这样一段代码: <?php function Test() { static $count = 0; $count++; echo $count; if ($count < 10) { Test(); } $count--; } ?> 执行结果如下: 这是一个递归的函数,声明的静态变量count记录次数,输出1~10
本文为大家讲解的是PHP中static关键字原理及使用方法,感兴趣的同学参考下。
看PHP手册的时候发现了下面这样一段代码:
<?php
function Test()
{
static $count = 0;
$count++;
echo $count;
if ($count < 10) {
Test();
}
$count--;
}
?>
执行结果如下:
这是一个递归的函数,声明的静态变量count记录次数,输出1~10。
我在看的时候有个疑惑,递归调用的时候 static $count = 0; 语句会重复执行,这为什么不会导致count变量被重复赋值呢?带着这个疑问和同事研究了一下,测试用代码如下:
<?php
echo 'start<br />';
static $a = 10;
echo "$a <br />";
unset($GLOBALS['a']);
echo "$a <br />";
static $a = 20;
echo "$a <br />";
$GLOBALS['a'] = 10;
echo "$a <br />";
static $a = 30;
echo "$a <br />";
unset($GLOBALS['a']);
echo "$a <br />";
static $a;
echo "$a <br />";
static $a = 40;
echo "$a <br />";
$a = 100;
echo "$a <br />";
static $a = 50;
echo "$a <br />";
static $a = 4;
echo "$a <br />";
echo 'end <br />';
exit;
?>
start
- 4
- Notice: Undefined variable: a
- 4
- 10
- 10
- Notice: Undefined variable: a
- 10
- 10
- 100
- 100
- 100
- end
声明:本文内容来源自网络,文字、图片等素材版权属于原作者,平台转载素材出于传递更多信息,文章内容仅供参考与学习,切勿作为商业目的使用。如果侵害了您的合法权益,请您及时与我们联系,我们会在第一时间进行处理!我们尊重版权,也致力于保护版权,站搜网感谢您的分享!