0

echo(),print(),print_r(),var_dump()间的区别详解

echo():输出一个或多个字符串,它并不是一个函数,使用时不是必须要加括号,直接用echo就可以。echo 是一个语言结构,有无括号均可使用:echo 或 echo()。echo()函数比print()速度稍快一点,因为它不返回任何值。



直接输出字符或字符串例如:


<?php
echo "abc”;      //输出abc   
echo 'abc’;       //同样输出abc 
?>

如果只是输出字符串的话,使用单引号或双引号效果是一样的,就像上面一样。





例如1:(把字符串变量$str的值写入输出)


<?php
$str="hello world!";
echo $str;
?>

//运行结果:hello world!

 

如果希望向echo()传递一个以上的参数,使用括号将会生成解析错误(所以还是不带括号吧)。echo输出多个字符串时,用逗号隔开。

例如2:(echo输出多个字符串)



echo 'a','b','c';


 



print()函数:输出一个或多个字符串。同echo一样,它也不是一个函数。print 也是语言结构,有无括号均可使用:print 或 print()。只能打印出简单类型变量的值,如:int、string。

print和echo的区别:

1.echo没有返回值,而print有返回值,在PHP 4.0以上版本始终返回 1,所以速度比echo稍慢。

2.echo 可以输出多个变量值,而print只有一个变量,做为一个字符串输出。



例如3:(把字符串变量$str的值写入输出)


<?php
$str="hello world!";
print $str;
?>
 



print_r()函数:把字符串和数字打印出来,而利用print_r()打印出整个数组,则按照一定格式显示内容及结构,键和元素以括起来的键和值列表形式显示,并以Array开头。实际它不仅仅用于打印,而是用于打印关于变量的易于理解的信息。但print_r()输出布尔值和NULL的结果没有意义,因为都是打印"\n"。因此用var_dump()函数更适合调试。



例如4:(打印数组$salary)


<?php
$salary=array(1888,2100,2400);
print_r($salary);
?>

//运行结果:Array ( [0] => 1888 [1] => 2100 [2] => 2400 )





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

var_dump和print_r的区别:

1.var_dump返回表达式的类型与值而print_r仅返回结果

2.相比调试代码使用var_dump更便于阅读。



例如5:


<?php
$name=array(‘Kevin’,’Glan’,’Maggie');
var_dump($name);
?>

//运行结果:

array (size=3)

  0 => string 'Kevin' (length=5)

  1 => string 'Glan' (length=4)

  2 => string 'Maggie' (length=6)