ホームページ  >  記事  >  バックエンド開発  >  PHPの複数のファイルでグローバル変数が参照される場合の問題

PHPの複数のファイルでグローバル変数が参照される場合の問題

WBOY
WBOYオリジナル
2016-06-23 14:00:031293ブラウズ

皆さんへの質問:
A php ファイルでグローバル変数を定義し、B php ファイルを参照して値を代入し、C php ファイルを参照してアクセスすることは可能ですか? テストしてみたところ、機能しないようです。 B に値を割り当てると、C は A の内容のみを参照できますが、B の変更された値は参照できません。

皆さんありがとうございます


ディスカッションへの返信 (解決策)

もちろん、前提条件は
C.php

include 'A.php';include 'B.php';
または
B.php
include 'A.php';

C.php
include 'B.php';

あなた C php B php を参照していませんよね?

モデレータの皆さん、こんにちは。私の考えを説明するために簡単な例を書きました:
A.php

<?php  $var_global;echo "<a href='B.php'>跳转到B赋值</a></br>";?>


B.php
<?php  include "A.php";//这个单元来赋值$var_global = "B来赋值";echo "</br>B单元中var_global的值是:" . $var_global;echo "</br><a href='C.php'>跳转到查看结果";?>


C.php
<?phpinclude "A.php";//这个单元来访问echo "</br>C单元中var_global的值是:" . $var_global;?>


実行結果は次のとおりです:

A .php:- >
割り当てのために B にジャンプします
B.php-> ユニット B の var_global の値は次のとおりです: 割り当てのために B にジャンプします
C.php->
割り当てのために B にジャンプします

ユニット C の var_global の値は次のとおりです:

つまり、C で取得された値は空であり、これは「B に値を代入する」という目的ではありません

もちろん、前提条件は

C.php

include 'A.php';include 'B.php';
または
B .php
include 'A.php';

C.php
include 'B.php';

私のアイデアは、C と同様に A でいくつかのグローバル変数を定義し、B でのプロセス割り当てを通じてそれらを変更することです。これらの変更されたグローバル変数は C や他の PHP ユニットで使用できます。セッション。出来ますか?
すべてのインクルードの順序は変更可能であるはずですが、B と C の間にそのような参照関係がないため、書き方が明確ではありません

C の php は B php を参照していませんよね。

そして場合によっては、C.php に B.php を含めることができない場合があります。たとえば、

B はログイン ページです
C は別のビジネス ページで、B でログインをマークし、C でこのマークを判断します

それは許可されません。

C.php では B.php を参照していないのですが、B.php はどのように実行されるのでしょうか?


包含関係ではない場合は、パラメータを渡すかセッションを使用する必要があります

無理な設計、なぜこのような回り道をしなければならないのですか。

それは許されません!

C.php では B.php を参照していないのですが、B.php はどのように実行されるのでしょうか?


包含関係ではない場合は、パラメーターを渡すかセッションを使用する必要があります
ログインを例に考えてみましょう。ログインが成功したかどうかを示す記号 $login が A にあり、B はその責任を負います。ログインが成功した場合は $login = "success "、C では B が実行されるかどうかに関係なく、$login が "success" に等しいかどうかが判断されます。等しくない場合は機能しません。 。
では、セッションか Cookie しか使用できないのでしょうか?

無茶苦茶なデザイン、なんでこんなに丸いんだろう。

私は常に C を使用していましたが、PHP は初めてです。現在、C のどの使用法が PHP と異なるのかを学んでいます。


はい、セッション/Cookie があなたの状況に最適です。

はい!


それは許されません!
C.php では B.php を参照していないのですが、B.php はどのように実行されるのでしょうか?

包含関係ではない場合は、パラメーターを渡すかセッションを使用する必要があります
ログインを例に考えてみましょう。ログインが成功したかどうかを示す記号 $login が A にあり、B はその責任を負います。ログインが成功した場合は $login = "success "、C では B が実行されるかどうかに関係なく、$login が "success" に等しいかどうかが判断されます。等しくない場合は機能しません。 。
では、セッションか Cookie しか使用できないのでしょうか?

C を使用してデスクトップ プログラムを作成し、ユーザーとの対話はプログラムの実行中に完了します
ただし、Web サイト プログラムは断続的に実行され、シーンは保存されません (また、シーンは保存できません)

モデレーターのお二人の熱意に感謝します

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。