-
print只能接收一个字符串;print有返回值1(可在表达式中使用)
e.g print 'string 1'
e.g if($exp && print 'foo')
-
echo可以通过分号连接,接收一个或多个字符串;echo没有返回值;
e.g. echo "string 1","string2"
-
print_r接收一个值,输出该值的可读性值(值不仅可以是字符串,也可以是其他任意类型);有返回值;
-
var_dump通过分号连接,接收一个或对多个值(值不仅可以是字符串,也可以是其他任意类型);没有返回值;
-
echo与print是数据结构,后面可以不加括号(加也没问题),print_r与var_dump是函数,后面必须加括号;
echo,print后面只能跟值为字符串的变量和双引号字符串(print接收一个,echo可以接收多个)
print_r,var_dump可以接受任意类型的值(print_r接收一个,var_dump可以接收多个)
-
综上所述,一般多用echo打印支付串,var_dump打印任意值(print_r不返回类型,所以var_dump要完善一些),比如:
$val = array(0,0.0,false,'');
print_r($val);//输出 Array ( [0] => 0 [1] => 0 [2] => [3] => )
var_dump($val);//输出array(4) { [0]=> int(0) [1]=> float(0) [2]=> bool(false) [3]=> string(0) "" }