0

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 がグローバル名前空間でグローバルを検索するのに費やす時間もありません。次に、問題は、なぜそれをしないのかということです。もっと速くなければなりませんね。

もちろん、この質問を誤って解釈して、いつもの雑用について話し合うのは簡単です。

  1. グローバルは悪い
  2. グローバルは...グローバルであるため、関数の引数を介してグローバルを渡す必要はありません。とにかくどこからでもアクセスできます。そして最後に、意味論的な観点から関数引数を介してグローバルを渡すことは意味がありません。それは人々を混乱させます。

どれも尋ねられている質問に対処していません。

スピードがすべてです。

4

1 に答える 1

0

グローバルである場合、そのグローバルを参照できる関数への引数として使用しても意味がありません。1) 速くならない、または 2) 実行速度がほとんど遅くならない 3) 実行速度が少しだけ速くなり、その理由は正式な論理に反します。

于 2013-02-28T00:12:12.510 に答える