誰かがあなたが参照としてキーを渡すことができない理由を私に説明できますか?
元:
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);
代替案はありますか?