【发布时间】:2021-03-15 11:31:37
【问题描述】:
我是 php 的初学者,想了解静态变量的工作原理。我有一个函数,其中包含一个常量变量“$ count”。当我多次调用该函数时,静态变量在每次调用中都初始化为“0”。 我想多次调用这个函数,记住保持常量变量达到的最后一个值。
$x = 2; $y = "Level";
function hello(){
global $x; global $y;
static $count = 1;
for(;;){
if($count == 11)
break;
echo"/hello student_".$count." ".$y."_".$x,"<br>";
$count++;
}
}
hello();
hello();
hello();
【问题讨论】:
-
“当我多次调用该函数时,静态变量在每次调用中都初始化为“0”。” - 你在说什么?不它不是。第一次调用是
1,第二次和第三次调用是11。 因为它是静态的。 -
当我多次调用该函数时,静态变量在每次调用中都初始化为“0”不,不是,您在第一次调用时将其设置为
1.如果您注意到第二次和第三次呼叫没有输出任何内容,因为$count在第二次和第三次呼叫中仍然是 11,因此它会在第二次和第三次呼叫时立即爆发