可能重复:
What’s the difference between echo, print, and print_r in PHP?
我可以使用这两种看似相同的效果。这两者有区别吗?并且优先于另一个吗?
谢谢!
答案 0 :(得分: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
)
)
答案 1 :(得分:6)
区别在于print_r
递归打印一个数组(或对象,但看起来不太好),显示所有键和值。 echo
没有,并且用于标量值。
答案 2 :(得分:3)
print_r打印有关变量的人类可读信息,而echo仅用于字符串。
答案 3 :(得分:3)
Echo只提供值,print_r提供有关变量本身的更多信息,例如数据类型和数组中的元素(如果适用)。
答案 4 :(得分:2)
我认为你必须指的是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
略快,但它几乎无法衡量。
你可以采取一些技巧来利用print的功能就像一个函数,尽管我很难给你一个真实的例子。这是一个不那么现实的例子:
if (print('Test')) {
// do something after the string is printed
}
同样,不是那么有用,但你有它。