-2

PHP で「静的」を使用すると問題が発生します。これが私のコードです:

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

出力が「11111----------」で、「Notice: Undefined variable: 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 に答える