對於some或other的原因,PHP中的array_reduce
函數只接受整數,因爲它是第三個參數。該第三參數被用作在整個還原過程的起點:PHP的array_reduce整數第三個參數的變通辦法
function int_reduc($return, $extra) {
return $return + $extra;
}
$arr = array(10, 20, 30, 40);
echo array_reduce($arr, 'int_reduc', 0); //Will output 100, which is 0 + 10 + 20 + 30 + 40
function str_reduc($return, $extra) {
return $return .= ', ' . $extra;
}
$arr = array('Two', 'Three', 'Four');
echo array_reduce($arr, 'str_reduc', 'One'); //Will output 0, Two, Three, Four
在第二呼叫,所述'One'
被轉換到它的整數值,這是0,然後使用。
爲什麼PHP這樣做!?
任何變通辦法歡迎...
編寫您自己的函數。將PHP公開的所有內容都包裹起來這是不一致的地獄。 – 2009-10-15 12:28:40
@lonut:悲傷但真實。 – 2009-10-15 12:32:51