PHP 5.3及更早版本仅支持array()定义空数组,方括号语法[]从PHP 5.4起才支持;可通过echo PHP_VERSION或php -v确认版本,旧环境建议统一使用array()写法确保兼容。

PHP定义空数组出错,大概率不是语法写错了,而是你用的PHP版本太老,不支持现代写法。
检查你用的是不是PHP 5.3或更低版本
PHP 5.3及更早版本只支持 array() 这一种定义空数组的方式:
-
✅ 正确(所有PHP版本都支持):
$arr = array(); -
❌ 错误(PHP 5.4+才支持):
$arr = [];—— 在PHP 5.3或更低版本中会报Parse error: syntax error, unexpected '['
确认当前PHP版本的两种常用方法
在代码里加一行临时输出:
-
echo PHP_VERSION;或var_dump(PHP_VERSION); - 或者运行命令行:
php -v
如果显示是 5.3.29、5.2.17 甚至更早,那必须改用 array() 写法。
立即学习“PHP免费学习笔记(深入)”;
升级PHP不是唯一解,兼容写法更稳妥
如果你无法立刻升级PHP环境(比如共享主机限制),建议统一使用传统写法,避免隐患:
- 空数组一律写成
$data = array(); - 带键值的也保持一致:
$config = array('host' => 'localhost', 'port' => 3306); - 多维数组嵌套时同样适用:
$matrix = array(array(1, 2), array(3, 4));
顺带提醒:短数组语法从PHP 5.4开始支持
方括号语法 [] 是PHP 5.4引入的,之后成为主流。但很多老项目、遗留系统、部分Linux发行版默认源(如CentOS 6自带PHP 5.3)仍可能遇到这个问题。别急着怀疑IDE或编码格式,先看版本。



















