echo、print和print_r函数区别

1.echo和print的区别

PHP中echo和print的功能基本相同(输出),但是两者之间还是有细微差别的。echo输出后没有返回值,但print有返回值,当其执行失败时返回flase。因此可以作为一个普通函数来使用,例如执行下面的代码后变量$r的值将为1。

$r = print "Hello World";

这意味着print可用在一些复杂的表达式中,而echo则不行。但是,因为echo语句不要求返回任何数值,所已在代码中echo语句的运行效率要略微快于print语句。

echo 没有返回值;print 有返回值,print 的返回值总是1。

2.表达式

print可以用于复杂的表达式,而 echo 不可以,比如 print 可以用于如下示例:

  1. <html><body><?php$a=true;$a ? print "true":print "false";?></body></html>

3.参数

echo 可以有多个参数,而 print 只能有一个参数。

echo 如果有多个参数,应用逗号分隔,每个参数没有必要加小括号,正确写法如下:

  1. echo "good ","for ","you";

注意,如果 echo 有多个参数,只用一个小括号将所有参数围起来,是错误的写法。下面的写法是错误的:

  1. echo ("good ","for ","you");

print 只能有一个参数,比如:

  1. print ("good for you");
  2. print "good for you";

echo 和 print 的作用都是输出字符串。echo 和 print 之间主要的区别在于,echo 的速度比 print 快,因为 echo 没有返回值。

4.print_r()函数,只用于输出数组。

php 中 print_r 函数输出的数组内容不排列。为了让它输出的好看些。如,数组有多层。分段列出,我们可以这样写:

  1. <?php
  2. $a = array ('a' => 'apple', 'b' => 'banana', 'c' => array ('x', 'y', 'z'));
  3. print_r ($a);
  4. ?>
  5. </pre>
  6. The above example will output:
  7. <pre>
  8. Array
  9. (
  10. [a] => apple
  11. [b] => banana
  12. [c] => Array
  13. (
  14. [0] => x
  15. [1] => y
  16. [2] => z
  17. )
  18. )