PHP で「静的」を使用すると問題が発生します。これが私のコードです:
static $a = 12;
if(0) {
static $b = 11;
static $a = 11111;
}
echo $a.'----------'.$b;
出力が「11111----------」で、「Notice: Undefined variable: b」が表示される理由
PHP で「静的」を使用すると問題が発生します。これが私のコードです:
static $a = 12;
if(0) {
static $b = 11;
static $a = 11111;
}
echo $a.'----------'.$b;
出力が「11111----------」で、「Notice: Undefined variable: 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ブロック内で定義されています。条件付きブロックまたはループブロック内で定義された変数は、そのブロック内でのみアクセス可能であるため、グローバルに宣言する必要があります。その後、グローバルスコープでのみアクセス可能になります。