爲什麼只有幾個PHP數組函數可用於ArrayObject
類的方法?例如asort()
可用,但walk()
和許多其他不是。可憐的PHP ArrayObject設計
$s= new ArrayObject(array(1,3,4,5,6,4));
$x= $s->asort(); //implemented
$x= $s->sum(); //not implemented
$x= array_sum($s->getArrayCopy()); //not an OO manner!
//sum is an example, consider:array_map,array_walk,array_merge ....
請注意,我仔細閱讀了文檔。我的問題是WHY PHP團隊只是在ArrayObject
類中嵌入了一個數組函數的子集(應該封裝與數組相關的需求)。這不是一個糟糕的設計嗎? 爲什麼我們應該擴展這個類,並再次在這個類中嵌入數十個函數?是合理的嗎?
@Reza真的我認爲這只是歸結爲能夠自我擴展自我需求。無論如何,你不會爲ArrayObject使用一個數字數組,因此在那裏名稱爲Object。你可以有一個班級收集,但你會如何總結?你必須定義它。你寧願沒有數組類嗎? – Matt
重複的關閉http://stackoverflow.com/questions/7174430/arrayobject-class-in-php – salathe
@Reza,你的問題的答案是*因爲這是作者決定*。如果您想知道原因,希望他們能記住,那麼我可以將他們的聯繫方式轉發給您? – salathe