php定义空数组推荐两种方式:$arr = array()兼容所有版本,$arr = [];自5.4起支持且更简洁;类中声明需注意版本限制,类型安全推荐php 7.4+的private array $items = [];。

PHP定义空数组很简单,但不同场景下选对方式能提升可读性、兼容性和类型安全性。核心就两条路:用 array() 或 [],其余都是延伸用法。
基础写法:两种等效语法怎么选
创建空数组只有两个推荐方式,功能完全一致,区别在于版本和风格:
- $arr = array(); —— 兼容所有PHP版本,适合维护老项目或需要向下兼容的环境
- $arr = []; —— 自PHP 5.4起支持,更简洁,是现代PHP项目的标准写法
性能无差别,也不影响后续操作(如 $arr[] = 'x' 或 array_push($arr, 'y'))。新项目直接用 [] 即可。
类中声明空数组:注意PHP版本限制
在类属性中初始化空数组,需留意PHP版本要求:
- PHP ≥ 7.4 才支持带类型声明的初始化:
private array $items = []; - 若只写
private $items = [];,则无版本限制,但失去类型提示优势 - 函数参数或返回值中声明数组类型,推荐搭配严格模式:
function getData(): array { return []; }
可为空数组:处理可能缺失的数据
当数组可能为 null(比如API未返回数据、数据库查询为空),应使用联合类型增强健壮性:
- PHP 8.0+ 支持原生
?array:function handle(?array $data): void { if ($data === null) { /* 处理空情况 */ } } - PHP 7.1–7.4 可用注解 + 运行时判断,但无编译期校验
- 避免用
$arr = null冒充空数组——它不是数组类型,调用count($arr)会警告,foreach($arr as ...)会报错
不推荐的“伪空数组”写法
以下方式看似得到空结构,实则埋下隐患:
-
$arr = null;→ 变量类型是null,不是数组,is_array($arr)返回false -
$arr = "";→ 类型是字符串,count($arr)返回1(字符串长度),非预期行为 -
unset($arr); $arr = [];→ 多余操作,直接$arr = [];更清晰
真正空数组必须满足:is_array($arr) && count($arr) === 0,或更稳妥地用 empty($arr) 判断。
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











