2011-07-07 6 views
3

私は関数の外で定義された変数(配列)を編集する必要があるので、別の関数でそれを使用することができます。私が考えることができる最も簡単な方法は関数内でグローバルとして定義することです多くの必要なファイルも含まれています。グローバルはPHPで必要なファイルを妨害しますか?

グローバル変数のドキュメントでは、プログラムのどこにでも使用できると言われています。これは、すべてのファイル(すべてのファイルにまたがってグローバルであることを意味します)を意味するのでしょうか、それがそのファイル(ローカルであれば意味がある場合)です。

このサイトのグローバルについては、参照渡しを推奨する質問がありましたが、この機能は他のファイルに広範に実装されており、呼び出しに追加の変数を持たせる必要があります。

+0

皆さんの投稿に別々にコメントするのではなく、このようにします: お返事ありがとうございます。私は別の方法を見つける必要があります。すべてのファイルにアクセスできるようにすることはできません。 – Joshua

答えて

0

ファイル内にグループ化された多くの機能が共通の状態にアクセスする必要がある場合は、それらをクラスにする必要があります。それはクラスの定義です。

または、配列をクラスに変換し、関数がその上でメソッドを呼び出すようにすることができます。

おそらくsingletonまたはとなる可能性があります。

ほとんどのOOP実装では、メソッドの最初のパラメータhidden(C++、PHP)かどうか(C、Python)としてオブジェクトへの参照が渡されることに注意してください。

3

関数内で変数globalを定義すると、グローバルスコープ変数を参照することになり、関数内で作成された変数への変更は、そのグローバル変数を使用する他の関数インクルード/実行の順序が正しい限り、

1

グローバルインが宣言されているファイルがメモリ内にある場合は、その変数を使用できます。しかし、includeまたはrequireを指定しないと、特定のページでglobalが宣言されたファイルは使用できなくなります。

オーダーも重要です。ファイルのincludeまたはrequireの前にグローバル変数を呼び出そうとすると、そのグローバル変数は使用できなくなります。

1

グローバルはすべてのファイルで共有されます。ちなみに、global $variable;で宣言する代わりに、$GLOBALS['variable']を使用して、グローバル変数にアクセスしていることを明示する必要があります。

関連する問題