在foreach循环中最有效的& $ key和& $值引用练习

时间:2013-02-24 21:12:47

标签: php mysql

在这里使用& $ 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);
  }
}

1 个答案:

答案 0 :(得分:2)

因此,性能通常分为三类 - CPU,内存或i / o。在你的情况下,我们谈论的是记忆。

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

所以更担心维护 - 让代码在三个月内对下一个人或你自己来说是可以理解的 - 比你可以节省几千字节。

附加说明:在这种情况下,使用引用(&$value)可以节省内存,因为您正在更改$value。但是,如果您所做的只是读取一个值,那么它真的无关紧要......暂时,PHP的默认行为(即当您不使用&)时,实际上是通过引用复制数组直到你改变它们,然后它首先复制它们。