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

PHP代码执行echo时为何追加输出‘1’?

为什么这段PHP代码会额外输出一个‘1’?

嘿,这个问题其实是PHP里print_r()函数的一个常见小陷阱,咱们一步步拆解就清楚了:

首先看你写的代码:

<?php $bp = array(); echo print_r($bp).'<BR>'; ?>

关键原因:print_r()的双重行为

  • print_r()函数有两种工作模式:
    1. 默认模式(无第二个参数):它会直接把变量的结构(这里是空数组Array ( ))输出到页面,同时返回布尔值true。
    2. 当你给它传第二个参数true时,它不会直接输出内容,而是把变量结构以字符串形式返回,让你可以用echo或者其他方式处理。

你的代码执行顺序

  1. 先执行print_r($bp):直接输出Array ( ),同时返回true。
  2. 然后把print_r($bp)的返回值true和<BR>拼接,得到字符串'1<BR>'(因为PHP里布尔值true被echo时会自动转成字符串'1')。
  3. 最后echo输出这个拼接后的字符串,也就是额外的1加上换行。

所以最终页面上的输出就是:

Array ( )1

怎么解决这个问题?

如果你不想看到额外的1,只需要给print_r()加上第二个参数true,让它返回内容而不是直接输出,再用echo打印:

<?php $bp = array(); echo print_r($bp, true).'<BR>'; ?>

这样就只会输出Array ( )<br>,不会有多余的1啦!

内容的提问来源于stack exchange,提问作者Mike Harris

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 07:40:45