3
在PHP函数与静态范围工作时,我得到了这个例子:PHP静态范围重新声明
function testStatic() {
static $a;
echo "here is a first time: ".$a."<br />";
$a = 23;
static $a = 100;
echo "here is a second time: ".$a."<br />";
}
当我运行像这样
teststatic(); echo "<hr />";
teststatic();
此功能下面它的输出结果:
这里是一个:100
这里是一个:23
这里是一个:23
这里是一个:23
但我希望它是以下几点:
这里是一个:空
这里是一个:100
这里是:100
这里是一个:100
我一直在思考小时试图解释为什么我收到上述结果,但真正的失败。 你能告诉我为什么我们有上面的结果吗?谢谢!
看起来静态变量的显式定义首先被识别(就像函数一样)。 –
我从来没有见过像这样的函数中定义的静态。通常它们在类上下文中定义,然后在成员方法内部或类外部引用。 –