PHP没有ArrayList类,仅用array实现列表功能;查长度应优先用count()而非print_r()或var_dump();第三方ArrayList需确认是否实现Countable接口。

PHP里没有 ArrayList,只有 array
Java 开发者转 PHP 时容易写错——PHP 原生不支持 ArrayList 这个类名,也没内置的 ArrayList 类。你写的 new ArrayList() 会直接报错:Fatal error: Uncaught Error: Class 'ArrayList' not found。PHP 的动态数组就是 array(或 PHP 7.1+ 的 array 类型声明),所有“列表”操作都基于它。
想只看长度,用 count(),别用 print_r() 或 var_dump()
print_r() 和 var_dump() 默认会递归展开整个数组结构,元素一多就刷屏。如果只是确认长度,纯属浪费输出和调试时间。
- 正确做法:直接调用
count($arr),返回整数 - 注意:对空数组、
null、非数组类型传入count()会静默返回0或触发警告(取决于错误级别) - 安全写法:
is_array($arr) ? count($arr) : 0 - 示例:
$data = ['a', 'b', 'c']; echo count($data); // 输出:3
如果真用了第三方 ArrayList 类,查它的 size() 或 length 方法
极少数 Composer 包(比如某些 Java 风格工具库)可能实现了 ArrayList 类,但它不是 PHP 标准。这种情况下:
- 先确认类是否存在:
class_exists('ArrayList') - 查阅该包文档,大概率提供
size()(如spatie/array-functions衍生类)或count()魔术方法 - 不要假设它兼容 PHP 原生函数;
count($list)能否工作取决于它是否实现了Countable接口 - 快速验证:
if ($list instanceof Countable) { echo count($list); }
别用 sizeof() —— 它只是 count() 的别名,没区别
有人看到旧代码里用 sizeof() 就以为更“轻量”,其实它完全等价于 count(),底层调用同一函数。PHP 手册明确标注:sizeof() is an alias of count()。用哪个纯属风格偏好,但团队内建议统一用 count(),避免新人误以为有性能差异。
立即学习“PHP免费学习笔记(深入)”;
真正影响性能的是数组嵌套深度和是否开启 Xdebug——这些跟用哪个函数名无关。如果数组极大且只关心长度,确保它没被意外转成引用或对象封装,否则 count() 可能触发隐式转换开销。











