PHP中类似Java的集合

我正在学习PHP5(上次检查PHP是在PHP4天内),我很高兴看到PHP5

OO比PHP4更像Java,但是仍然有一个问题使我感到非常困惑,因为我的Java背景:阵列。

我正在阅读“ Proffesional

PHP6”(Wrox),它显示了自己的Collection实现。我在基于SPL的http://aheimlich.dreamhosters.com/generic-

collections/Collection.phps中找到了其他类。我还发现SPL(ArrayObject)中有某种Collection

但是,我很惊讶,因为我没有真正看到人们在PHP中使用Collections,他们似乎更喜欢数组。

因此,在PHP中使用Collections就像人们在Java中使用ArrayList而不是基本数组一样,不是一个好主意吗?毕竟,php数组与java数组并不十分相似。

回答:

Java集合是一种强类型语言,因此很有意义。收集诸如“汽车”和“摩托车”之类的集合是有意义的。

但是,在PHP中,由于动态类型化的特性,通常会牺牲Collections的形式。数组足以用作各种对象类型(汽车,摩托车等)的通用容器。同样,增加的好处来自可以很容易地对数组进行突变的事实(当缺少正确的错误检查时,这有时可能是一个很大的缺点)。

我来自Java背景,我发现在PHP中使用Collections设计模式不会带来很多好处(没有多线程,没有内存分配优化,没有迭代器等)。

如果您正在寻找这些优点中的任何一个,则最好在数组周围构造一个包装器类,实现每个功能(迭代器等)。

以上是 PHP中类似Java的集合 的全部内容, 来源链接: utcz.com/qa/410541.html

回到顶部