php定义空数组有方括号[](推荐php 5.4+)和array()(兼容所有版本)两种主要方式,前者简洁直观、语义清晰且与json一致,后者适用于旧环境;动态初始化时可直接赋空数组后按需追加索引或关联键,混合使用无冲突。

PHP定义空数组很简单,但方式不止一种,选对写法能提升代码可读性、兼容性和维护性。关键看你的PHP版本和后续用途——是准备动态追加元素,还是马上填入键值对,或是要兼顾老环境。
最常用且推荐的空数组写法
现代PHP项目(PHP 5.4+)首选方括号语法,简洁直观,语义清晰:
-
空索引数组:
$list = []; -
空关联数组:
$user = [];(空数组本身不区分类型,后续赋值决定结构) - 这种写法与JSON高度相似,也和大多数现代语言保持一致,团队协作时更易理解
兼容旧版PHP的写法(支持所有版本)
若需运行在PHP 5.3或更早环境,必须使用array()函数:
-
通用空数组:
$data = array(); - 它不预设键类型,既可以后续用
$data[] = 'x';追加索引元素,也能用$data['name'] = 'Tom';添加关联键 - 注意:
array()在PHP 7.4+中仍完全可用,只是不再被推荐用于新代码
动态初始化:先空后填,适合运行时构建
不预先声明初始值,而是按需逐步填充,特别适合循环、表单处理或数据库结果组装:
- 直接写
$items = [];或$items = array();即可开始 - 追加索引元素:
$items[] = 'first';→ 自动分配下一个整数键(如0、1、2…) - 设置关联键:
$items['status'] = 'pending';→ 键名为字符串,不干扰数字索引序列 - 混合使用无冲突:
['a', 'b', 'type' => 'info']中,前两项得索引0、1,'type'独立存在
容易忽略但重要的细节
空数组看似简单,几个隐含规则会影响实际行为:
- 读取未定义下标(如
$arr[0])会触发Notice,但写入($arr[0] = 1)会自动创建数组并赋值 - 用
var_dump($arr)查看真实结构,避免被字符串数字键(如"1"转成整数1)误导 - 空数组参与
array_merge()、array_filter()等函数时,结果仍是空数组,不会报错 - 函数返回空数组(如
array_slice([], 0))也是合法值,可安全用于条件判断
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











