Netbeans IDEを使用していますが、宣言されていない変数の横に警告が表示されます。これは非常に便利です。
これがファイルの先頭にある場合
global $CFG;
その後、変数が宣言されているため、警告は消えます。
しかし、これは良い習慣ですか?それらは何か利点がありますか?コードは宣言なしでも機能します。
注:これは、関数外のコードを持つファイル用です。
変数を使用する前に、変数を宣言することをお勧めします。ただし、グローバルスコープ内でそれらをグローバルとして宣言することは不要です。あなたはただすることができます
する代わりに
global $CFG;
あなたはただすることができます
$CFG;
プレフィックスを付けて宣言するのglobal
が「便利」なのは、関数内でグローバルスコープの変数にアクセスする場合だけです。ただし、これは通常は悪い習慣であり、絶対に必要な場合はほとんどありません。
いいえ、スコープ外(関数内など)で変数を使用する場合は、変数を渡すか、関数内でグローバル化することができます
function xoxo(){
global $var;
}
このように変数を「宣言」することに私が気をつけていることが 2 つあります。
まず、関数の外側にある大量のコードは、おそらくコードのリファクタリングが必要であることを意味します。コードのトップ レベルには、スクリプトまたはページのメイン アクションを呼び出す行がいくつかあるかもしれませんが、宣言が「ファイルの先頭」にあると言うと、それ以上のものがあることが示唆されます。
次に、PHP で変数を「宣言」することは、通常、変数に何らかの初期値を与えることと同義です。たとえば、$params = array()
などのテンプレート パラメータのリストを作成する前に設定します$params['foo'] = get_foo()
。このような初期化は、それを使用するコードの近くに常に保持する必要があります。これにより、後でリファクタリングを行った場合に、コードがそれに伴います。
常に変数を初期化することが良い考えである理由の例は、ある種のループ内にコードのブロック全体を入れることになった場合です。上記の場合、複数のテンプレートをレンダリングしていて、初期化を忘れていた場合$params
、$params['foo']
がすべてのテンプレートに渡される可能性があります。