有人可以向我解释为什么您不能将密钥作为参考传递吗?
前任:
if(is_array($where)){
foreach($where as &$key => &$value){
$key = sec($key);
$value = sec($value);
}
unset($key, $value);
}
抛出:
Fatal error: Key element cannot be a reference in linkstest.php on line 2
我可以使用 array_map 做类似的事情吗?我想做的就是遍历一个关联数组,并用我的 sec() 函数转义键和值。
数组映射对我来说很难理解:
我用 array_map 尝试了很多东西,但我不能让它直接作用于键。
使用数组映射比仅使用 foreach 循环可以获得任何性能优势吗?
我不喜欢 foreach 的是我不能直接对数组进行操作,并且必须处理创建临时数组并取消设置它们:
foreach($where as $key => $value){
$where[secure($key)] = secure($value);
}
如果它在键中找到要转义的内容,添加一个新元素并保留未转义的元素,这可能会失败。
所以我坚持这样的事情吗?
$temparr = array();
foreach($where as $key => $value){
$temparr[secure($key)] = secure($value);
}
$where = $temparr;
unset($temparr);
有什么选择吗?