-2

在 PHP 中使用“静态”时出现问题。这是我的代码:

static $a = 12;
if(0) {
static $b = 11;
static $a = 11111;
}
echo $a.'----------'.$b;

为什么输出是“11111----------”并得到“注意:未定义的变量:b”

4

2 回答 2

2

这一定是范围问题,但我不确定为什么,因为它不在函数中。不管怎样,我让它像这样工作:

static $a = 12;
static $b; // <-- notice this
if (0) {
    static $b = 11;
    static $a = 11111;
}
echo $a.'----------'.$b;
于 2012-10-28T07:38:44.530 回答
0

作为您的问题的解决方案,请参考以下代码片段

 <?php 
     static $a = 12;
     static $b ;
     if(0) {
       static $b = 11;
       static $a = 11111;
      }

     echo $a.'----------'.$b;
    ?>

在上面的代码片段中,变量 $b 是在 if 块中定义的。在条件块或循环块中定义的变量只能在该块中访问。所以它需要全局声明。然后只有它可以在全局范围内访问

于 2012-10-28T07:43:51.483 回答