PHP没有ArrayList,只有原生array;echo/print无法输出数组内容,须用print_r、var_dump或json_encode;网页中需用htmlspecialchars+确保安全。

PHP 里没有 ArrayList,别被 Java 术语带偏了
PHP 没有 ArrayList 这个类型——那是 Java 的类。PHP 只有原生数组(array),底层是哈希表+有序列表的混合结构,既支持数字索引也支持字符串键。如果你在代码里写了 new ArrayList(),会直接报错:Fatal error: Uncaught Error: Class 'ArrayList' not found。
用 print_r() 看数组内容最靠谱
echo 和 print 不能直接输出数组,它们只接受字符串或标量,对数组只会输出字符串 Array,毫无信息量。必须用专门处理结构化数据的函数:
-
print_r($arr):最常用,可读性好,适合调试;加第二个参数true可返回字符串而非直接输出 -
var_dump($arr):更严格,显示类型、长度、完整结构,连null和布尔值都标得清清楚楚 -
json_encode($arr, JSON_UNESCAPED_UNICODE):适合输出给前端或日志,但会丢掉非 UTF-8 兼容字符和资源类型
示例:
php $arr = ['name' => '张三', 'scores' => [85, 92]]; print_r($arr); // 输出: // Array // ( // [name] => 张三 // [scores] => Array // ( // [0] => 85 // [1] => 92 // ) // )
在网页中安全输出数组,记得转义 HTML
如果在 HTML 页面里直接 print_r($arr),数组里的换行、尖括号会被浏览器当标签解析,导致页面错乱甚至 XSS 风险。正确做法是:
立即学习“PHP免费学习笔记(深入)”;
- 用
htmlspecialchars()包一层再放进标签里 - 或者用
highlight_string()+var_export()组合,生成可读又安全的代码式输出
推荐写法:
php别用
echo $arr,它永远只输出 “Array”这是新手最常踩的坑。PHP 把数组转成字符串时,固定返回字面量
Array,不是空,也不是报错,就是静默丢掉所有内容。你看到的Array字样,和数组实际结构完全无关。
-
echo [1,2,3];→ 输出Array -
echo ['a'=>1];→ 还是Array - 连
echo (string)[1,2];结果也一样
真要拼接字符串输出,得自己遍历:echo implode(', ', $arr);,但前提是数组全是标量且你明确知道结构。











