摘要:echo、print 是 php 语句,var_dump 和 print_r 是函数,print 、print_r 有返回值;echo、var_dump 没有返回值。
1、echo
echo — 输出一个或多个字符串
形式:echo ( string $arg1 [, string $... ] ) : void
输出所有参数。不会换行。
echo 不是一个函数(它是一个语言结构), 因此你不一定要使用小括号来指明参数,单引号,双引号都可以。 echo (不像其他语言构造)不表现得像一个函数, 所以不能总是使用一个函数的上下文。 另外,如果你想给echo 传递多个参数, 那么就不能使用小括号。
【echo 也有一个快捷用法,你可以在打开标记前直接用一个等号。在 PHP 5.4.0 之前,必须在php.ini 里面启用 short_open_tag 才有效。】I have =$foo?> foo.
echo 和 print 最主要的不同之处是, echo 接受参数列表,并且没有返回值。
echo 没有返回值,所以用参数接收它的输出结果时会报错。
但它可以同时输出多个变量:
2、print
print — 输出字符串
形式:print ( string $arg ) : int
print 实际上不是函数(而是语言结构),所以可以不用圆括号包围参数列表。
print 和 echo 最主要的区别: print 仅支持一个参数,并总是返回 1。
如果用print输出多个变量时会报错:
print有返回值,且返回值总是1:
3、print_r
print_r — 以易于理解的格式打印变量
形式:print_r ( mixed $expression [, bool $return = FALSE ] ) : mixed
print_r() 以人类易读的格式显示一个变量的信息。
print_r()、 var_dump()都会显示对象 protected 和 private 的属性。 Class 的静态属性(static) 则不会显示。
当第二个参数设置为 TRUE 时,print_r() 会直接返回信息,而不是输出。
返回值:
如果输入的内容是 string、 integer 或 float,会直接输出值本身。 如果输入的内容是 array,展示的格式会显示数组的键和包含的元素。object 也类似。
4、var_dump
var_dump — 打印变量的相关信息
形式:var_dump ( mixed $expression [, mixed $... ] ) : void
此函数显示关于一个或多个表达式的结构信息,包括表达式的类型与值。数组将递归展开值,通过缩进显示其结构。var_dump 没有返回值