在这里使用& $ 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);
}
}
答案 0 :(得分:2)
因此,性能通常分为三类 - CPU,内存或i / o。在你的情况下,我们谈论的是记忆。
如果您迫切需要保存内存,请使用引用(& $ value)而不是按值复制实例。但是我经常发现这是一个不成熟的优化。考虑一下这个值在内存中会持续多长时间:有多少用户甚至会遇到这个给定的函数?功能的范围是什么?等
所以更担心维护 - 让代码在三个月内对下一个人或你自己来说是可以理解的 - 比你可以节省几千字节。
附加说明:在这种情况下,使用引用(&$value
)可以节省内存,因为您正在更改$value
。但是,如果您所做的只是读取一个值,那么它真的无关紧要......暂时,PHP的默认行为(即当您不使用&)时,实际上是通过引用复制数组直到你改变它们,然后它首先复制它们。