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