php的static静态变量不是只在内存存一份吗?今天试了一下下面的代码有点疑问
function test(){
static $sum = 0;
static $sum = 20;
for ($i=0; $i < 100; $i++) {
$sum = $sum + $i;
}
echo $sum;
}
echo "<pre class="brush:php;toolbar:false;">";
test();//4970
echo "<br />";
test();//9920
echo "<br />";
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 "<pre class="brush:php;toolbar:false;">";
test();//4970
echo "<br />";
test();//9920
echo "<br />";
test();//14870
既然在内存中只是一份,再次调用类似直接引用,那么第一次为什么 $num 被赋值成了20?
第一次运行的结果不应该是 4950 才对嘛
$i =1;$i…
芒果系统GSHOP 纯静态商城系统,你还在为商城的优化而苦恼?GSHOP是全站纯静态商城系统,一键seo优化功能解决seo问题,自定义URL链接解决商城同质化问题;多页面显示:动态页、伪静态页面、纯静态页面增加收录,提升网站权重,提升流量等。安全稳定、功能强大的商城系统。1、芒果商城系统基于 php5.0开发,企业级应用。2、产品功能Ajax设计,响应速度更快,购物体验更好。3、全新密钥存放机制,
立即学习“PHP免费学习笔记(深入)”;
//结果:4950;
可以理解为 值20那一行,把上面值为0的一行覆盖了,因为变量名一样,所以初始化的时候就是20。










