在PHP中使用'static'时遇到问题。这是我的代码:
static $a = 12;
if(0) {
static $b = 11;
static $a = 11111;
}
echo $a.'----------'.$b;
为什么输出是“11111 ----------”并得到“通知:未定义的变量:b”
答案 0 :(得分:2)
它必须是范围问题,但我不确定为什么因为它不在函数中。不管怎样,我得到了这样的工作:
static $a = 12;
static $b; // <-- notice this
if (0) {
static $b = 11;
static $a = 11111;
}
echo $a.'----------'.$b;
答案 1 :(得分:0)
作为问题的解决方案,请参阅以下代码段
<?php
static $a = 12;
static $b ;
if(0) {
static $b = 11;
static $a = 11111;
}
echo $a.'----------'.$b;
?>
在上面的代码片段中,变量$ b在if块中定义。条件或循环块中定义的变量只能在该块中访问。因此需要全局声明。然后只能在全局范围内访问它