You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel Blade模板调用print_r输出末尾多出1的解决办法

问题原因

输出末尾追加数字1的问题与ob_end_flush()无关,本质是PHP print_r 函数的返回值特性导致:

  • print_r() 默认第二个参数为false,此时函数会直接将格式化内容打印到输出流,同时返回布尔值true,布尔值true在字符串上下文会被自动转换为字符串1。
  • Blade 模板的{{ }}语法会输出括号内表达式的返回值,最终就出现了「print_r直接输出的内容 + 表达式返回值转成的1」的拼接结果。

解决方法

方法1:修改print_r参数,让其返回格式化字符串

给print_r传入第二个参数true,此时函数不会直接输出内容,而是将格式化后的字符串作为返回值,交给{{ }}输出即可:

$name = {{ print_r($name, true) }}
</br>
$name[0] = {{ print_r($name[0], true) }}

方法2:直接输出变量(仅适用于字符串/数字类型变量)

如果不需要打印数组的结构,只是要输出指定元素的值,不需要调用print_r,直接输出变量即可:

$name[0] = {{ $name[0] }}

如果需要遍历整个数组输出所有元素,使用Blade的@foreach指令即可:

@foreach($name as $item)
    元素值:{{ $item }} <br>
@endforeach

方法3:使用Laravel自带的调试指令(开发环境用)

如果是开发阶段调试变量,直接使用Blade提供的@dump指令,不需要额外套输出标签:

{{-- 打印$name的完整结构 --}}
@dump($name)
{{-- 打印$name[0]的值 --}}
@dump($name[0])

内容的提问来源于stack exchange,提问作者Orhan OSMANAĞAOĞLU

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.08 03:54:03