有人能解释一下为什么不能将键作为引用传递吗?
例如:
我可以使用array_map做类似的事情吗?我只想遍历关联数组,并使用我的sec()函数转义键和值。
对我来说,理解Array map很困难:
我尝试了许多array_map的用法,但我无法直接作用于键上。
使用array_map是否会获得任何性能优势,而不仅仅是使用foreach循环?
我不喜欢foreach的原因是我不能直接作用于数组,并且必须处理创建临时数组并取消设置它们的问题:
有其他替代方案吗?
例如:
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很困难:
我尝试了许多array_map的用法,但我无法直接作用于键上。
使用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);
有其他替代方案吗?
sec($key)
的结果与另一个已存在的键的值相同怎么办?你只是覆盖现有的键吗?你需要解释为什么在你的应用程序中一个键可能会很危险。 - webbiedave