最稳妥、跨版本兼容的方式是使用 array() 函数写法,它自 php 4.0 起支持所有版本;而 [] 是 php 5.4 引入的短语法,在 php 5.3 及更早环境会报错,且部分静态分析工具可能警告,故 array() 更健壮通用。

PHP中定义空数组,最稳妥、跨版本兼容的方式是使用 array() 函数写法。它从 PHP 4.0 起就存在,支持所有后续版本(包括 PHP 5.x、7.x、8.x),无任何兼容性风险。
为什么推荐 array() 而非 []?
方括号语法 [] 是 PHP 5.4 引入的短数组语法,虽然简洁,但在以下场景会出问题:
- 运行在 PHP 5.3 或更早环境(如老旧服务器、某些嵌入式系统)时直接报错
Parse error: syntax error - 部分静态分析工具或代码扫描器(如 older PHP_CodeSniffer 规则)可能对
[]报告兼容性警告 - 团队协作中若未统一 PHP 版本要求,易引发部署失败
哪些写法真正通用?
以下三种写法均可安全用于 PHP 4.0+,推荐按优先级选择:
- array() —— 最标准、最明确、无歧义,语义清晰,IDE 和 linter 支持最好
- array([]) —— 不推荐,虽能运行,但属于冗余嵌套,易被误读为“空数组的数组”
-
$arr = array(); —— 明确赋值,适合初始化变量,比
$arr = [];更健壮
实际编码建议
日常开发中可按需选择,兼顾可读性与兼容性:
- 函数返回空数组:用
return array();(不写return [];) - 类属性默认值:PHP 7.4+ 支持
public array $data = [];,但若需支持更低版本,改用public $data = array(); - 条件初始化:如
$list = $hasData ? $items : array();,避免混用[]导致风格不一
额外提醒:类型声明不影响初始化写法
即使启用了 PHP 7.4+ 的类型声明,如 function getItems(): array { return array(); },仍应坚持用 array() 初始化。类型声明只约束返回值类型,不改变语法兼容性要求。
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











