PHP数组怎么创建_PHP数组创建方式详解【指南】

2次阅读

php数组创建无标准方式,仅依场景选择:PHP 5.4+推荐[]语法(更简短易读),5.3及以下必须用Array();键名须加引号防常量误解析;规则数组优先用range()或array_fill()等内置函数。

PHP数组怎么创建_PHP数组创建方式详解【指南】

PHP数组创建没有“标准方式”,只有“合适场景”——用 array() 还是 [],取决于 PHP 版本、可读性需求和是否要兼容旧环境。

PHP 5.4+ 直接用 [] 是最简写法

PHP 5.4 开始支持短数组语法,[] 完全等价于 array(),且更轻量、更易读。

  • 写键值对时,['name' => 'Alice', 'age' => 30]array('name' => 'Alice', 'age' => 30) 少敲 5 个字符
  • 嵌套数组也更清爽:[['id' => 1], ['id' => 2]] 不会因括号嵌套变混乱
  • 注意:PHP 5.3 及更早版本会直接报错 Parse Error: syntax error, unexpected '['

PHP 5.3 或需要向下兼容时必须用 array()

如果项目还在跑 PHP 5.3(比如某些老旧 CMS 或内网系统),[] 语法不可用,硬写就是解析失败。

  • 错误现象:Parse error: syntax error, unexpected '[' —— 看到这个,先查 PHP 版本,别急着改逻辑
  • array() 在所有 PHP 4+ 版本中都安全,包括已废弃的 PHP 4.3
  • 参数写法一致:空数组写 array(),带值写 array(1, 2, 3)array('a' => 1)

创建关联数组时,键名引号不是必须的,但建议加

PHP 允许不加引号的键名(如 $arr[key] = 'val'),但这是危险习惯。

立即学习PHP免费学习笔记(深入)”;

  • 没引号的 key 会被当作常量;若该常量未定义,PHP 会自动转成字符串,同时触发 E_NOTICE
  • 实际开发中,$arr[status] 很可能本意是字符串键,但万一定义过 const status = 1;,值就错了
  • 正确写法统一用引号:['status' => 'active']array('status' => 'active')

range()array_fill() 创建规则数组更高效

不要手写 [1,2,3,4,5] 或重复 ['x','x','x'],PHP 内置函数更准更快。

  • range(1, 5)[1,2,3,4,5];支持字母:range('a', 'c')['a','b','c']
  • array_fill(0, 3, 'default')[0 => 'default', 1 => 'default', 2 => 'default']
  • 注意:array_fill_keys(['a','b'], 'val') 填的是关联键,别和 array_fill() 混用

真正容易被忽略的,是数组键名的隐式类型转换:数字字符串 '123' 和整数 123 作为键,在 PHP 数组里是同一个位置。写的时候看着像不同键,运行时却互相覆盖。

text=ZqhQzanResources