PHP 関数内のグローバル変数へのアクセス
ほとんどのプログラミング言語では、関数の外で定義された変数は、それらの関数内でアクセスできます。ただし、次のような PHP コードは期待した出力を生成しない可能性があります:
$data = 'My data'; function menugen() { echo "[" . $data . "]"; } menugen();
出力は空の配列 [] であり、ユーザーはグローバル変数 $data にアクセスできない理由について混乱します。
答えは、PHP の変数スコープ ルールにあります。関数内からグローバル変数にアクセスするには、global キーワードを使用して明示的に宣言する必要があります。これにより、PHP は関数内だけでなく、グローバル スコープ内で変数を検索することを認識できるようになります。
$data = 'My data'; function menugen() { global $data; // Declare the global variable echo "[" . $data . "]"; } menugen();
もう 1 つの方法は、定義されたすべての変数を含む $GLOBALS 配列を通じてグローバル変数にアクセスすることです。ただし、競合や変数名の衝突の可能性があるため、これは一般的に推奨されません。
最後に、スコープの問題を回避し、コードの明瞭さを維持するために、グローバル変数の使用を最小限に抑えることをお勧めします。代わりに、変数のスコープが明確に定義され、依存関係が明確になるように、データをパラメーターとして関数に渡すことを検討してください。
以上がPHP 関数内でグローバル変数にアクセスする方法: なぜ「global $data」が必要なのでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。