0

これは私がしばらく前に片付ける必要があったものです。PHP 5.3以降では、これにより非常に大きな配列の結果のパフォーマンスが向上するかどうかを尋ねたいと思いました。そして、私が証拠を示すことができる方法がありますか?

$synonyms = & MobyThesaurus::GetSynonyms("check");

アンパサンドに注意してください(値ではなく参照による)。

4

1 に答える 1

1

PHPは、舞台裏でコピーオンライトを使用します。つまり、値は変更された場合にのみコピーされます。それまではコピーは行われず、$synonyms基本的にはとにかく参照として機能します。アレイから読み取るだけの場合は、パフォーマンスに違いはありません。

配列に書き込むと、変数参照であるかどうかに関係なく、機能にかなりの違いが生じます。意図しない限り、参照を使用しないでください。そうしないと、アプリにファンキーな副作用が発生する可能性があります。

舞台裏で行われている多くの最適化があります、そのような「トリック」でこれ以上それを最適化することができると期待しないでください。PHPは、ポインター/参照アクロバットを巧みに操るには間違った言語です。:-)

于 2011-04-13T02:23:05.327 に答える