在控制台中打印变量
需要同时观察 PHP 生成的页面和服务端变量时,可以把变量编码成 JavaScript 字面量,再输出到浏览器开发者工具的 Console。下面的写法不会把数组或对象再次包成字符串,并使用 JSON_HEX_* 选项降低变量内容提前结束 <script> 标签或破坏引号的风险:
echo '<script>console.log('
. json_encode(
$attr,
JSON_HEX_TAG | JSON_HEX_AMP | JSON_HEX_APOS | JSON_HEX_QUOT
)
. ');</script>';打开浏览器开发者工具后刷新页面,就能在 Console 中查看 $attr。如果页面有缓存,应先确认本次请求确实执行了这段 PHP。
什么时候不该输出到浏览器
这种方法只适合本地开发或临时排查,因为输出内容会进入返回给用户的 HTML。密码、令牌、Cookie、数据库连接信息和用户隐私数据都不应这样打印,生产环境也不应保留调试输出。
只需要在服务端查看变量时,优先写入受控日志:
error_log(print_r($attr, true));日志文件的位置由 PHP-FPM、Web 服务器或容器配置决定。排查完成后删除临时代码,避免额外输出破坏 JSON 接口、响应头或页面缓存。