可能重复:
What’s the difference between echo, print, and print_r in PHP?PHP中的echo和print_r之间的区别?
我能够看似相同的效果使用这两种。两者有什么不同?而且比另一个更受欢迎?
谢谢!
可能重复:
What’s the difference between echo, print, and print_r in PHP?PHP中的echo和print_r之间的区别?
我能够看似相同的效果使用这两种。两者有什么不同?而且比另一个更受欢迎?
谢谢!
区别在于print_r
以递归方式打印数组(或对象,但看起来不太好),显示所有的键和值。 echo
没有,并且用于标量值。
print_r打印关于变量的人类可读信息,而echo仅用于字符串。
Echo只是给出了值,print_r给出了有关变量本身的更多信息,例如数据类型和数组中的元素(如果适用)。
$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
)
)
我想你一定意味着print
和echo
而非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
}
再次,没有那么有用,但你有它。
这可能是非常非常有用的:http://www.php.net/manual/en/在询问这些难题之前,请毫不犹豫地阅读它。 – 2011-06-03 20:52:08
我认为OP意味着'print'和'echo'而不是'print_r' .... Genadinik? – 2011-06-03 20:54:25
@chris其实我无能为力意味着print_r - 但非常好的一点:) – Genadinik 2011-06-03 21:11:55