1

$_ENVとの使用の違いは何$GLOBALSですか?

いつでもどこでも取得および設定できるグローバル変数が必要です (オブジェクト指向クラスおよび単純な手続き型 PHP スクリプトでアクセスできる必要があります)。上記のどれを使用する必要がありますか?

4

3 に答える 3

1

$GLOBALSPHPコードのあらゆるコンテキスト(関数内、クラス内、どこでも)でアクセスできるグローバル変数を設定する場所を提供するために、それが作成された目的であるため、使用する必要があります。

しかし、優れたプログラミング プラクティスとして、グローバル変数を悪用しないでください。対照的に、関数とオブジェクト メソッドが、それを動作させるために必要なすべてのデータをコンテキスト内に持つようにしてください。そうすれば、コードはより柔軟になります。

于 2012-12-05T09:10:06.197 に答える
1

グローバル変数をまったく使用せず、代わりに依存性注入 (つまり、必要なすべてのデータを関数パラメーターとして渡す) を使用する必要がありますが、必要な場合は$GLOBALS. $_ENVシステムから渡された PHP スクリプトの外部からのデータを保持します。それはスーパーグローバルとしての目的を果たすかもしれませんが、それは意図されたものではありません.

于 2012-12-05T09:10:38.427 に答える
0

グローバルに代わるものとして、Zend がこれを行う方法を見てみましょう。Zend レジストリ: http://framework.zend.com/manual/1.12/en/zend.registry.html

基本的に、変数を取得および設定するためのいくつかの静的メソッドを持つクラスです。

私は個人的に、グローバルを使用するこの種のアプローチを好みます。

于 2012-12-05T09:17:09.390 に答える