PHP 没有 arraylist 类型或 arraylist_8.1 函数,8.1 新增的是 enum、readonly 等特性;数组输出推荐 json_encode($arr, JSON_UNESCAPED_UNICODE),调试可用自定义 dd() 函数。
PHP 没有
类型,也没有名为
的新增函数——这是个常见误解,可能源于混淆了 Java 的
、JavaScript 的数组习惯,或误读了 PHP 8.1 的更新日志。
PHP 8.1 根本没有 arraylist 相关函数
PHP 原生只有
(索引/关联混合数组),不区分“列表”“集合”“队列”。PHP 8.1 新增的是
、
属性、
返回类型、
等,但**没有任何叫
的函数或语法糖**。
搜索 PHP 官方文档或 RFC,找不到任何
关键字
、
、
仍是输出数组的主力工具
所谓“更简洁输出”,实际取决于你想要什么效果:可读性?调试用?API 响应?
想让数组输出更简洁?优先用 json_encode() + JSON_UNESCAPED_UNICODE
相比
(带类型、长度、嵌套缩进)和
(无类型但格式松散),
输出紧凑、结构清晰、天然适合日志或前端消费。
默认会转义中文为
,加
保持可读:
多维数组自动缩进需额外加
,但会变长;纯简洁就别加
注意:含资源、闭包、不可序列化对象时会返回
,建议先
或用
替代
调试时想又快又干净?封装一个简版 dump 函数
PHP 8.1 没提供新 dump 工具,但你可以用一行
自定义轻量输出:
PHP 8.5.5
PHP 8.5.5 是 PHP 8.5 分支的维护更新版本。该版本延续了“小步快跑”的迭代逻辑,通过深度错误修复、底层性能微调以及安全加固,旨在为开发者提供一个更健壮、更高效的运行环境。该版本严格遵守语义化版本规范,不包含破坏性变更。
下载
立即学习
“
PHP免费学习笔记(深入)
”;
用法:
—— 不带类型、无换行污染、中文原样、遇到非标数据直接报错(比静默失败更利于定位)。
不用依赖
就能获得接近的效果
避免
把资源句柄(如
)打出来却看不出内容
注意:
是 PHP 7.3+ 才有,PHP 8.1 安全可用
容易被忽略的关键点
所谓“简洁”,不是函数名越短越好,而是输出是否匹配当前场景。比如:
API 接口返回数组,
是标准做法,不是“技巧”而是必须
日志里记录数组,用
避免斜杠转义干扰 grep
返回字符串虽方便拼接,但默认不处理 NaN/INF,PHP 8.1 仍存在兼容隐患
如果真在代码里看到了
,大概率是某 Composer 包自定义的 helper 函数,不是 PHP 内置
arraylistarraylist_8.1ArrayListarrayenumreadonlyneverfsync()arraylist_*arraylistvar_dump()print_r()json_encode()var_dump()print_r()json_encode()\uXXXXJSON_UNESCAPED_UNICODEjson_encode($arr, JSON_UNESCAPED_UNICODE)JSON_PRETTY_PRINTfalsearray_filter($arr, 'is_scalar')var_export()functionfunction dd(...$vars) {
foreach ($vars as $v) echo json_encode($v, JSON_UNESCAPED_UNICODE | JSON_THROW_ON_ERROR) . "\n";
exit;
}dd($users, $config)symfony/var-dumpervar_dump()resource #123JSON_THROW_ON_ERRORjson_encode()json_encode($arr, JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE)print_r($arr, true)arraylist_*