PHP 関数内のグローバル変数にアクセスするにはどうすればよいですか?

Susan Sarandon
リリース: 2024-10-27 06:44:03
オリジナル
511 人が閲覧しました

How Can I Access Global Variables Inside PHP Functions?

PHP グローバル変数へのアクセス

多くのプログラミング言語とは異なり、PHP コードは関数の外部で定義された変数に直接アクセスできません。次のコードに示すように、関数内でグローバル変数を取得しようとすると、よくある誤解が生じます。

<code class="php">    $data = 'My data';

    function menugen() {
        echo "[" . $data . "]";
    }

    menugen();</code>
ログイン後にコピー

多くの人が驚いたことに、出力は空の角かっこ ([]) になります。 「私のデータ」を期待していました。この記事では、この動作の背後にある基礎的なメカニズムを詳しく掘り下げ、関数内でグローバル変数にアクセスするための解決策を提供します。

グローバル変数宣言

PHP は明示的な宣言を要求することで問題を解決します。関数内で使用されるグローバル変数の数。以下の変更コードに見られるように、global キーワードはこの目的を果たします。

<code class="php">    $data = 'My data';

    function menugen() {
        global $data; // <-- Declares $data as global
        echo "[" . $data . "]";
    }

    menugen();</code>
ログイン後にコピー

この行を追加することで、関数は $data という名前のグローバル変数を使用するつもりであることを PHP に通知します。この宣言がないと、PHP はローカルに見つからない変数はローカル変数であると想定し、そのように初期化します。したがって、出力は空になります。

代替アクセス方法

または、$GLOBALS 配列を使用してグローバル変数にアクセスできます。この連想配列には、すべてのグローバル変数がその名前とともにキーとして保存されます。この方法はグローバル変数を操作する方法を提供しますが、潜在的なセキュリティ リスクとコードの保守性の複雑さのため、通常は推奨されません。

グローバルの回避

最新のプログラミング実践では、グローバル変数の使用を完全に避けることを強くお勧めします。代わりに、よりクリーンで保守しやすいコードを実現するには、データをパラメーターとして関数に渡すことをお勧めします。上の例では、このアプローチは次のようになります:

<code class="php">    $data = 'My data';

    function menugen($data) { // <-- Parameter declared
        echo "[" . $data . "]";
    }

    menugen($data); // <-- Data passed during call</code>
ログイン後にコピー

以上がPHP 関数内のグローバル変数にアクセスするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!