1 最初からばかげているように聞こえるかもしれません...
これは、PHP のグローバル変数と関数パラメーターの間の利点/欠点と同じ質問ではありません。ここでstackoverflowで尋ねました。そこで、アスカーはローカル変数とグローバル変数の違いについて疑問に思います。ここでは、グローバル対グローバル。私の質問は、グローバル変数のアクセスと速度を処理する PHP の内部的な方法に関するものです。
以下の例で、function_1 は function_2 よりも高速に実行されるはずですか?
function function_1 ( &$global_variable_x) {
//do something with $global_variable_x
}
function function_2 () {
global $global_variable_x;
//do something with $global_variable_x
}
何が違うのかを強調しておきます...
ケース 1 では、グローバルを関数の引数に渡します。それだけでなく、ref として渡し、メモリの場所が PHP に直接渡されるようにします。global
このトリックにより、関数内でキーワードを使用する必要はありません。また、まさにこの事実により、PHP がグローバル名前空間でグローバルを検索するのに費やす時間もありません。次に、問題は、なぜそれをしないのかということです。もっと速くなければなりませんね。
もちろん、この質問を誤って解釈して、いつもの雑用について話し合うのは簡単です。
- グローバルは悪い
- グローバルは...グローバルであるため、関数の引数を介してグローバルを渡す必要はありません。とにかくどこからでもアクセスできます。そして最後に、意味論的な観点から関数引数を介してグローバルを渡すことは意味がありません。それは人々を混乱させます。
どれも尋ねられている質問に対処していません。
スピードがすべてです。