2011-06-03 75 views
0

可能重复:
What’s the difference between echo, print, and print_r in PHP?PHP中的echo和print_r之间​​的区别?

我能够看似相同的效果使用这两种。两者有什么不同?而且比另一个更受欢迎?

谢谢!

+0

这可能是非常非常有用的:http://www.php.net/manual/en/在询问这些难题之前,请毫不犹豫地阅读它。 – 2011-06-03 20:52:08

+2

我认为OP意味着'print'和'echo'而不是'print_r' .... Genadinik? – 2011-06-03 20:54:25

+0

@chris其实我无能为力意味着print_r - 但非常好的一点:) – Genadinik 2011-06-03 21:11:55

回答

6

区别在于print_r以递归方式打印数组(或对象,但看起来不太好),显示所有的键和值。 echo没有,并且用于标量值。

3

print_r打印关于变量的人类可读信息,而echo仅用于字符串。

3

Echo只是给出了值,print_r给出了有关变量本身的更多信息,例如数据类型和数组中的元素(如果适用)。

7
$a = array ('a' => 'apple', 'b' => 'banana', 'c' => array ('x', 'y', 'z')); 
echo array($a); // returns "Array" 
print_r($a); // returns 
Array 
(
    [a] => apple 
    [b] => banana 
    [c] => Array 
     (
      [0] => x 
      [1] => y 
      [2] => z 
     ) 
) 
2

我想你一定意味着printecho而非print_r .... print_r是非常明显的不同。

首先,查看文档。从表面上看,没有太大的区别:

http://php.net/manual/en/function.print.php

http://php.net/manual/en/function.echo.php

的主要区别在于打印可以表现为一个函数或语言结构。这些都可以工作:

print('Something'); 
print 'Something'; 

前一种方法(带括号)在打印后返回一个值。现在,这引出了一个问题:“为什么打印后我需要返回值?”答案是,你根本就没有。两种输出方法都是语言结构,两者之间没有明显的性能差异。在极大的范围内,由于返回值,echo可能比print略快,但它几乎不可能测量。

虽然我很难给你一个真实世界的例子,但你可以利用打印行为像一个函数的事实来做一些技巧。这里是一个不太现实的例子:

if (print('Test')) { 
    // do something after the string is printed 
} 

再次,没有那么有用,但你有它。