0

ここで$payload[$ key]の代わりに&$ keyと&$ valueの参照を使用する方が良い/パフォーマンスが高いですか...その後、foreachループの後にunsetを使用して参照を破棄しますか?

または、私が持っている方法は、ベストプラクティスとしては問題ありませんか?...そうでない場合は、例を挙げてください。

foreach ($payload as $key => $value) {
  if (is_array($value)) {
    $payload[$key] = mysqli_real_escape_string($db_connection, implode(',', $value));
  } else {
    $payload[$key] = mysqli_real_escape_string($db_connection, $value);
  }
}
4

1 に答える 1

2

したがって、パフォーマンスは通常、CPU、メモリ、またはI/Oの3つのカテゴリに分類されます。あなたの場合、私たちは記憶について話している。

どうしてもメモリを節約する必要がある場合は、値によるコピーのインスタンスの代わりに参照(&$ value)を使用してください。ただし、これは時期尚早の最適化であることがよくあります。この値がメモリにどのくらいの期間存在するかを考えてみてください。この特定の関数にヒットしたユーザーは何人ですか?関数のスコープは何ですか?等

したがって、数キロバイト節約できるよりも、メンテナンスについて心配する必要があります。つまり、コードを次の人や自分自身が3か月で理解できるようにすることです。

追記:この場合、参照(&$value)を使用すると、を変更しているため、メモリを節約できます$value。しかし、値を読み取るだけであれば、それはまったく問題ではありません...しばらくの間、PHPのデフォルトの動作(つまり、&を使用しない場合)は、実際に配列を参照によってコピーするまでです。それらを変更すると、最初にそれらがコピーされます。

于 2013-02-24T21:17:33.633 に答える