php数组初始化最推荐短数组语法[],自5.4起为标准写法,简洁高效且兼容json风格;array()用于旧版本兼容;arrayobject适用于需对象特性的场景。

PHP 数组初始化最常用、最推荐的方式是 短数组语法 [],它简洁、高效、可读性强,自 PHP 5.4 起成为标准写法。其他方式如 array() 或 new ArrayObject() 在特定场景下仍有价值,但需注意兼容性与语义差异。
短数组语法 [] —— 现代 PHP 的首选
这是目前最主流、最推荐的写法,PHP 5.4+ 全面支持,语法干净,性能略优,且与 JavaScript/JSON 风格一致,降低学习和切换成本。
- 空数组:
$arr = []; - 索引数组:
$fruits = ['apple', 'banana', 'cherry']; - 关联数组:
$user = ['name' => 'Alice', 'age' => 30]; - 多维数组:
$matrix = [[1, 2], [3, 4]];
传统 array() 函数 —— 兼容旧版本的兜底方案
适用于需要支持 PHP 5.3 或更早版本的遗留项目。语法稍冗长,但语义明确,且在 PHP 所有版本中都可用。
- 空数组:
$arr = array(); - 带键值:
$config = array('debug' => true, 'timeout' => 30); - 注意:PHP 5.4+ 中
array()和[]完全等价,底层实现一致
ArrayObject 类 —— 面向对象场景下的可扩展选择
当需要数组具备对象特性(如方法调用、迭代器控制、事件钩子或继承扩展)时使用。它不是“初始化数组”的常规方式,而是提供增强能力的封装。
立即学习“PHP免费学习笔记(深入)”;
- 基本用法:
$obj = new ArrayObject(['a', 'b']); - 优势:可附加方法、实现接口(如
IteratorAggregate)、支持序列化定制 - 注意:性能略低于原生数组,且不能直接用
[]或array()语法创建
不推荐的写法与常见误区
以下方式虽能运行,但存在隐患或已过时,应避免在新项目中使用:
-
$arr = array(1, 2, 3);+array()混用在长数组中易出错(尤其换行后逗号遗漏) -
array()中使用尾部逗号(array(1, 2,))在 PHP 7.3+ 允许,但低版本会报错,一致性差 - 用
NULL或字符串强制转数组(如(array) null)语义模糊,易掩盖逻辑问题 -
new stdClass()不是数组,无法用[]下标访问,混淆类型边界











