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()包一层再放进<pre class="brush:php;toolbar:false;"></code> 标签里</li> <li>或者用 <code>highlight_string()</code> + <code>var_export()</code> 组合,生成可读又安全的代码式输出</li> </ul> <p>推荐写法:</p> <pre class="brush:php;toolbar:false;">php <pre class="brush:php;toolbar:false;"><code><?php echo htmlspecialchars(print_r($arr, true)); ?></code></pre> <h3>别用 <code>echo $arr,它永远只输出 “Array”这是新手最常踩的坑。PHP 把数组转成字符串时,固定返回字面量
Array,不是空,也不是报错,就是静默丢掉所有内容。你看到的Array字样,和数组实际结构完全无关。-
echo [1,2,3];→ 输出Array -
echo ['a'=>1];→ 还是Array - 连
echo (string)[1,2];结果也一样
真要拼接字符串输出,得自己遍历:
数组本身不“可打印”,能打印的是它的表现形式——选对函数、注意上下文、避开语言惯性,比记语法更重要。echo implode(', ', $arr);,但前提是数组全是标量且你明确知道结构。 -



















