echo、print_r、print、var_dump区别

时间:2020-05-01

echo

echo — 输出一个或多个字符串

echo ( string $arg1 [, string $... ] ) : void

输出所有参数。不会换行。

echo 不是一个函数(它是一个语言结构), 因此你不一定要使用小括号来指明参数,单引号,双引号都可以。 echo (不像其他语言构造)不表现得像一个函数, 所以不能总是使用一个函数的上下文。 另外,如果你想给echo 传递多个参数, 那么就不能使用小括号。

print 最主要的不同之处是, echo 接受参数列表,并且没有返回值。

echo 1,2,3;

print

print — 输出字符串

print ( string $arg ) : int

输出 arg。

print 实际上不是函数(而是语言结构),所以可以不用圆括号包围参数列表。

echo 最主要的区别: print 仅支持一个参数,并总是返回 1。

$a = print 1;
$b = print '1';
var_dump($a, $b);

print_r

print_r — 以易于理解的格式打印变量。

print_r( mixed $expression[, bool $return = FALSE] ) : mixed

print_r() 以人类易读的格式显示一个变量的信息。

print_r()、 var_dump()、 var_export() 都会显示对象 protected 和 private 的属性。 Class 的静态属性(static) 则不会显示。

$a = print_r('1');
$arr = [1, 2, 3];
$b = print_r($arr);

var_dump($a, $b);
$a = print_r('1', true);
$arr = [1, 2, 3];
$b = print_r($arr, true);

var_dump($a, $b);

var_dump

var_dump — 打印变量的相关信息

var_dump( mixed $expression[, mixed $...] ) : void

此函数显示关于一个或多个表达式的结构信息,包括表达式的类型与值。数组将递归展开值,通过缩进显示其结构。

和直接将结果输出到浏览器一样,可使用输出控制函数来捕获当前函数的输出,然后(例如)保存到一个 string 中。

var_dump([1, 2, 3]);