PHP 数组初始化常见写法对比

1次阅读

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

PHP 数组初始化常见写法对比

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() 不是数组,无法用 [] 下标访问,混淆类型边界
text=ZqhQzanResources