本文共 716 字,大约阅读时间需要 2 分钟。
PHP的static静态变量不是只在内存存一份吗?今天试了一下下面的代码有点疑问
function test(){
static $sum = 0;
static $sum = 20;
for ($i=0; $i < 100; $i++) {
$sum = $sum + $i;
}
echo $sum;
}
echo "";
test();//4970
echo "
";
test();//9920
echo "
";
test();//14870
既然在内存中只是一份,再次调用类似直接引用,那么第一次为什么 $num 被赋值成了20?
第一次运行的结果不应该是 4950 才对嘛
回复内容:
PHP的static静态变量不是只在内存存一份吗?今天试了一下下面的代码有点疑问
function test(){
static $sum = 0;
static $sum = 20;
for ($i=0; $i < 100; $i++) {
$sum = $sum + $i;
}
echo $sum;
}
echo "";
test();//4970
echo "
";
test();//9920
echo "
";
test();//14870
既然在内存中只是一份,再次调用类似直接引用,那么第一次为什么 $num 被赋值成了20?
第一次运行的结果不应该是 4950 才对嘛
$i =1;$i<101
…
//结果:4950;
可以理解为 值20那一行,把上面值为0的一行覆盖了,因为变量名一样,所以初始化的时候就是20。 本条技术文章来源于互联网,如果无意侵犯您的权益请点击此处反馈版权投诉 本文系统来源:php中文网
转载地址:http://wbcpo.baihongyu.com/