【发布时间】:2011-08-25 05:10:47
【问题描述】:
为什么ArrayObject 类中只有几个 PHP 数组函数作为方法可用?例如,asort() 可用,但 walk() 和其他许多不可用。
$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 ....
请注意,我已仔细阅读文档。我的问题是为什么 php 团队只是在 ArrayObject 类中嵌入了数组函数的子集(应该封装与数组相关的要求)。这不是一个糟糕的设计吗?
为什么我们要扩展这个类并在这个类中再次嵌入数十个函数?是否合理?
【问题讨论】:
-
@Reza 真的我认为归根结底是能够根据自己的需要自行扩展它。无论如何,您都不会为 ArrayObject 使用数字数组,因此其中的名称为 Object。你可以有一个类集合,但你会如何总结呢?你必须定义它。你宁愿没有数组类吗?
-
@Reza,您的问题的答案是因为这是作者决定的。如果您想知道原因,希望他们能记住,那么我可以将他们的联系方式转发给您吗?