PHP 中类 Java 的集合

标签 java php collections language-comparisons

我正在学习 PHP5(上次我检查 PHP 是在 PHP4 的日子里),我很高兴看到 PHP5 OO 比 PHP4 更像 Java,但仍然有一个问题让我感到很不舒服,因为我的 Java 背景:数组。

我正在阅读“Proffesional PHP6”(Wrox),它展示了它自己的 Collection 实现。 我发现了其他类,例如 http://aheimlich.dreamhosters.com/generic-collections/Collection.phps 中的类基于声压级。 我还发现 SPL (ArrayObject) 中有某种 Collection

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

所以,在 PHP 中使用 Collections 不是一个好主意,就像人们在 Java 中使用 ArrayList 而不是基本数组一样吗?毕竟,php 数组并不像 java 数组。

最佳答案

Java 中的集合很有意义,因为它是一种强类型语言。有一个集合说“汽车”和另一个“摩托车”是有意义的。

然而,在 PHP 中,由于动态类型的性质,牺牲 Collections 的形式是很常见的。数组足以用作各种对象类型(汽车、摩托车等)的通用容器。此外,额外的好处是数组可以很容易地改变(如果没有正确的错误检查,这有时会成为一个很大的缺点)。

我有 Java 背景,我发现在 PHP 中使用集合设计模式并没有带来太多优势(没有多线程、没有内存分配优化、没有迭代器等) .

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

关于PHP 中类 Java 的集合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1580223/

相关文章:

python - Laravel:致命 Python 错误:_Py_HashRandomization_Init:无法获取随机数来初始化 Python Python 运行时状态:预初始化

php - 使用 .htaccess 优化网站

c# - 按以下结果对集合进行排序

collections - meteor 使用本地连接会导致错误: insert failed: 404 -- Method not found

collections - C# 中的 IComparer<> 和类继承

java - Excel 中的图形和图表

java - 基于字段值的 Jackson 属性顺序

java - 检查第二个列表中是否缺少第一个列表的任何条目

java - 如何编写 JAVA CLASS 和 PHP API 来发布和读取现有 MySQL 数据库

java - 在 GlassFish Server 上创建并运行应用程序客户端