0

在这里使用 &$key 和 &$value 引用而不是 $payload[$key]... 然后在 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。在您的情况下,我们正在谈论内存。

如果您迫切需要节省内存,请使用引用 (&$value) 而不是按值复制的实例。但是我经常发现这是一个过早的优化。考虑一下这个值会在内存中保留多长时间:有多少用户甚至点击了这个给定的功能?功能的范围是什么?等等

因此,更多地担心维护——让代码在三个月内为下一个人或你自己所理解——而不是你可以节省的几千字节。

附加说明:在这种情况下,使用引用 ( &$value) 会节省内存,因为您正在更改$value. 但是,如果您所做的只是读取一个值,那么它真的一点都不重要……有一段时间,PHP 的默认行为(即当您不使用 & 时)实际上是通过引用复制数组,直到您更改它们,此时它首先复制它们。

于 2013-02-24T21:17:33.633 回答