首页 编程语言 php

PHP 中 echo print print_r() var_dump() 的区别

echo

可以一次输出多个值,多个值之间用逗号分隔。echo是语言结构(language construct),而并不是真正的函数,因此不能作为表达式的一部分使用。

print()

函数print()打印一个值(它的参数),如果字符串成功显示则返回true,否则返回false。

print_r()

可以把字符串和数字简单地打印出来,而数组则以括起来的键和值得列表形式显示,并以Array开头。但print_r()输出布尔值和NULL的结果没有意义,因为都是打印"\n"。因此用var_dump()函数更适合调试。

var_dump()

判断一个变量的类型与长度,并输出变量的数值,如果变量有值输的是变量的值并回返数据类型。此函数显示关于一个或多个表达式的结构信息,包括表达式的类型与值。数组将递归展开值,通过缩进显示其结构。

疑问

它们都有返回值吗

  • echo 没有返回值,返回会报错
  • print 有返回值
  • print_r() 有返回值
  • var_dump()有返回值,但是返回值是NULL

关于带不带括号

  • echo 可带,可不带
  • print 可带,可不带
  • print_r() 必须带
  • var_dump() 必须带

可否输出多个变量

  • echo 可以(不可加括号)
  • print 不可以
  • print_r() 不可以
  • var_dump() 可以

可以打印的数据类型

  • echo: 可以输出「字符型,整形,浮点型,布尔型,资源」;不可以输出「数组,对象」(会报错)不会输出「NULL」(不会报错)
  • print: 可以输出「字符型,整形,浮点型,布尔型,资源」;不可以输出「数组,对象」(会报错)不会输出「NULL」(不会报错)和echo表现一致
  • print_r: 可以输出「字符型,整形,浮点型,布尔型,数组,对象,资源」不会输出“「NULL」(不会报错)
  • var_dump: 可以输出「字符型,整形,浮点型,布尔型,数组,对象,资源,NULL」
相关推荐