dump var_dump print print_r的区别

一、总结

用dump()来打印就对了

 1、echo和print:不能打印复合型和资源型数据;

 2、var_dump()和print_r():可以打印复合型和资源型数据;var_dump()更加详细

 3、dump和var_dump:两者打印内容一样,dump打印出来的结构更好看

 

二、echo与print,var_dump()和print_r()的区别

1.echo 和 print 的区别

共同点:首先echo 和 print 都不是严格意义上的函数,他们都是 语言结构;他们都只能输出 字符串整型跟int型浮点型数据不能打印复合型和资源型数据;

而区别是:echo 可以连续输出多个变量,而print只能一次输出一个变量。print打印的值能直接复制给一个变量,如 $a = print “123”;

而echo 不可以,它没有像函数的行为,所以不能用于函数的上下文。在使用时,echo() 函数比 ​​print()​​速度稍快。

 

2.var_dump()和print_r()的区别

共同点:两者都可以打印数组,对象之类的复合型变量

区别:print_r() 只能打印一些易于理解的信息,且print_r()在打印数组时,会将把数组的指针移到最后边,使用 reset() 可让指针回到开始处。 而var_dump()不但能打印复合类型的数据,还能打印资源类型的变量。且var_dump()输出的信息则比较详细,一般调试时用得多

 

 

三、print_r与var_dump的区别

$colors = array('red', 'blue', 'green', 'yellow');

print_r($colors);

echo '<br>';

var_dump($colors);


输出结果如下:

Array ( [0] => red [1] => blue [2] => green [3] => yellow )

array(4) { [0]=> string(3) "red" [1]=> string(4) "blue" [2]=> string(5) "green" [3]=> string(6) "yellow" }



var_dump 可以使用任何变量,包括字符串,数组,数字,对象,还指明变量的类型及长度。


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


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

print_r() 显示关于一个变量的易于理解的信息。如果给出的是 ​​string​​、​​integer​​ 或 ​​float​​,将打印变量值本身。如果给出的是 ​​array​​,将会按照一定格式显示键和元素。​​object​​ 与数组类似。

记住,print_r() 将把数组的指针移到最后边。

print_r和var_dump都能输出数组和对象,但print_r对布尔型的输出不太明显;var_dump输出比较详细,一般调试时用得多。

四、dump和var_dump的区别

同样的数据:

dump打印:

array(3) {
[0] => string(18) "e:\2017\Config.ini"
[1] => string(21) "e:\2017\advisetip.ini"
[2] => string(26) "e:\2017\advisetip_theme.ui"
}


 

var_dump打印:

array(3) { [0]=> string(18) "e:\2017\Config.ini" [1]=> string(21) "e:\2017\advisetip.ini" [2]=> string(26) "e:\2017\advisetip_theme.ui" }

 

dump打印格式更加清晰