为了账号安全,请及时绑定邮箱和手机立即绑定

PHP中的echo,print和print_r有什么区别?

PHP中的echo,print和print_r有什么区别?

PHP
三国纷争 2019-07-25 16:47:24
PHP中的echo,print和print_r有什么区别?我用echo和print_r多,而且几乎从来不使用print。我觉得它echo是一个宏,print_r是别的var_dump。但这不是解释差异的标准方法。
查看完整描述

3 回答

?
隔江千里

TA贡献1906条经验 获得超10个赞

回声

  • 输出由逗号分隔的一个或多个字符串

  • 没有回报价值

    例如 echo "String 1", "String 2"

打印

  • 仅输出一个字符串

  • 返回1,因此可以在表达式中使用

    例如 print "Hello"

    要么, if ($expr && print "foo")

的print_r()

  • 输出任何一个值的人类可读表示

  • 不仅接受字符串,还接受其他类型,包括数组和对象,将它们格式化为可读

  • 调试时很有用

  • 如果给出第二个可选参数,则可以将其输出作为返回值(而不是回显)返回

的var_dump()

  • 输出由逗号分隔的一个或多个值的人类可读表示

  • 不仅接受字符串,还接受其他类型,包括数组和对象,将它们格式化为可读

  • 使用不同的输出格式print_r(),例如它还打印值的类型

  • 调试时很有用

  • 没有回报价值

var_export()

  • 输出任何一个值的人类可读和PHP可执行表示

  • 不仅接受字符串,还接受其他类型,包括数组和对象,将它们格式化为可读

  • 使用不同的输出格式都print_r()var_dump()-输出结果是合法的PHP代码!

  • 调试时很有用

  • 如果给出第二个可选参数,则可以将其输出作为返回值(而不是回显)返回

笔记:

  • 即使print可以在表达式中使用,我建议人们避免这样做,因为它对代码可读性有害(并且因为它不太可能有用)。与其他运营商交互时的优先规则也可能令人困惑。因此,我个人没有理由使用它echo

  • 鉴于echo并且print是语言结构,print_r()var_dump()var_export()是常规功能。您不需要括号将参数括起来echoprint(如果您使用它们,它们将被视为在表达式中)。

  • 虽然var_export()返回有效的PHP代码允许稍后读取值,但依赖于此代码生成代码可能会因为需要使用而更容易引入安全漏洞eval()。最好使用类似JSON的格式来存储和读回值。速度将具有可比性。


查看完整回答
反对 回复 2019-07-25
?
HUH函数

TA贡献1836条经验 获得超4个赞

只是为了添加John的答案echo应该是您用来向页面打印内容的唯一答案

print有点慢。var_dump()并且print_r()应该只用于调试。

另外值得一提的是,print_r()并且var_dump()默认情况下会回显print_r(),至少添加第二个参数,将其计算为true以使其返回,例如print_r($array, TRUE)

回声和返回之间的区别是:

  • echo:将立即将值打印到输出。

  • 返回:将函数的输出作为字符串返回。对记录等有用


查看完整回答
反对 回复 2019-07-25
  • 3 回答
  • 0 关注
  • 501 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信