$_ENV
との使用の違いは何$GLOBALS
ですか?
いつでもどこでも取得および設定できるグローバル変数が必要です (オブジェクト指向クラスおよび単純な手続き型 PHP スクリプトでアクセスできる必要があります)。上記のどれを使用する必要がありますか?
$_ENV
との使用の違いは何$GLOBALS
ですか?
いつでもどこでも取得および設定できるグローバル変数が必要です (オブジェクト指向クラスおよび単純な手続き型 PHP スクリプトでアクセスできる必要があります)。上記のどれを使用する必要がありますか?
$GLOBALS
PHPコードのあらゆるコンテキスト(関数内、クラス内、どこでも)でアクセスできるグローバル変数を設定する場所を提供するために、それが作成された目的であるため、使用する必要があります。
しかし、優れたプログラミング プラクティスとして、グローバル変数を悪用しないでください。対照的に、関数とオブジェクト メソッドが、それを動作させるために必要なすべてのデータをコンテキスト内に持つようにしてください。そうすれば、コードはより柔軟になります。
グローバル変数をまったく使用せず、代わりに依存性注入 (つまり、必要なすべてのデータを関数パラメーターとして渡す) を使用する必要がありますが、必要な場合は$GLOBALS
. $_ENV
システムから渡された PHP スクリプトの外部からのデータを保持します。それはスーパーグローバルとしての目的を果たすかもしれませんが、それは意図されたものではありません.
グローバルに代わるものとして、Zend がこれを行う方法を見てみましょう。Zend レジストリ: http://framework.zend.com/manual/1.12/en/zend.registry.html
基本的に、変数を取得および設定するためのいくつかの静的メソッドを持つクラスです。
私は個人的に、グローバルを使用するこの種のアプローチを好みます。