関数の外部で宣言された変数を使用するときにベストプラクティス/推奨事項がありますか?
global $myVar
$GLOBALS['myVar']
ありがとうございました。
本当にすべきなのは、グローバルをまったく使用せずに変数を関数に渡すことです。
参照パラメーターとして渡すことにより、関数の外部で変数を変更する方法の例:
function myFunc(&$myVar)
{
$myVar = 10;
}
$foo = 0;
myFunc($foo);
var_dump($foo); // yields 10
さて、限られた状況でのみグローバルを使用する必要がありますが、質問に答えるために:
global
は潜在的にわずかに高速です(ほとんど違いはありません)。$GLOBALS
_(_$GLOBAL
_ではなく)は読みやすいです。なぜなら、それを見るたびに、グローバル変数にアクセス/変更していることがわかるからです。これは、厄介なバグを回避するために重要です。unset($GLOBALS['varname'])
ではなくglobal $varname; unset($varname);
を使用する必要があります。ポイント1と2については、ここで quote Sara Golemonを紹介します。
_
$GLOBALS
_配列を使用することはどういう意味ですか?そうです、global
キーワードは技術的に高速です。今、私はここで一つのことについて本当に明確になりたいです。ローカライズされた[コンパイルされた変数]としてグローバルを使用することで与えられるマイナーなスピードアフォーダンスは、5年でコードを見て、_$foo
_がグローバルスコープから来たことを知る保守性と真剣に比較検討する必要があります。something_using($GLOBALS['foo']);
は常にglobal $foo; /* buncha code */ something_using($foo);
よりも明確になります。ペニーにせず、愚かなことをしないでください。
私はあなたの職務の最上位にあるグローバルに行きます。そのようにして、使用されているグローバルを簡単に確認できます。
OOPでグローバルを使用しないことをお勧めします。常により良い方法があるはずです