ホームページ > バックエンド開発 > PHPチュートリアル > PHP グローバル変数が有効にならない理由の概要_PHP チュートリアル

PHP グローバル変数が有効にならない理由の概要_PHP チュートリアル

WBOY
リリース: 2016-07-15 13:32:59
オリジナル
884 人が閲覧しました

実際に操作している初心者にとって

ですが、実際の操作では、グローバル変数が無効であるといういくつかのイライラする出来事に遭遇するでしょう。PHPのグローバル変数が有効にならない理由とその解決策に焦点を当てましょう。

1. PHP グローバル変数を有効にできないエラーが再発します

この問題は、私の単純なフレームワークを使用し、ビューで元のサードパーティによって定義された関数を使用するときに発生します (この関数は比較的独立しています)。以下でシミュレートします。

t1.php

  1. < ?
  2. run(); //
  3. function run(){
  4. 「func.php」を含める;
  5. showGlobal();
  6. }
  7. func.php 1
    1. < ?
    2. $vars = 'I am global!';
    3. function showGlobal(){
    4. global $vars;
    5. print('我使用全局变量:'.$vars);
    6. }
    7. ?> 

    非常に単純な 2 つのファイル (初回の場合)問題が発見された場合は、これよりもはるかに複雑になります。レイヤーごとにデバッグすると、最小限の問題の再現環境が得られます。この関数は、次の 2 つのグローバル変数を使用します。ファイルを一緒に結合して t1.php を実行すると、showGlobal の $vars が表示されないことがわかります。Global is valid?

    を検索するとエラーの理由が見つかりました。 php.net がずっと前に提案しており、次のような説明もしてくれました:

    func.php が t1.php の run 関数に含まれている場合、func.php 内の変数 $vars のスコープはrun 関数内では、showGlobal で global を使用して宣言された $vars は run 関数ではなく t1.php に属する必要があるため、空になります)

    3. PHP グローバル変数は有効になりません。理由がわかれば、解決策は非常に簡単です。func.php の $vars を run の外に移動し、global を使用して $vars を run に宣言することもできます。元々 run に属していたものは削除できます (t1.php に属する) global として宣言されています。

    私の phpec フレームワークでは include の状況が比較的一般的であるため、問題は簡単に解決できますが、依然として非常に使いにくいです。 、そして、ビュー内のオンデマンドインクルードを に移動することは不可能です。外側の層については、グローバルを使用する場合、サードパーティの関数を使用するときに、どのグローバル変数が使用されているかを知りたくないのです。階層が増えると...

    PHP グローバル変数が有効にならない理由まとめ:

    1) マルチレベルおよび関数内のインクルードファイルを減らすようにしてください2) グローバル変数を使用しないようにしてください。

    http://www.bkjia.com/PHPjc/446107.htmlwww.bkjia.com

    tru​​e

    http://www.bkjia.com/PHPjc/446107.html


    技術記事

    実際の操作中にグローバル変数が無効になるというイライラする状況に何度か遭遇した初心者のために、PHP グローバル変数が有効にならない理由と解決策に焦点を当てましょう...

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート