PHP 中 print 和 echo 的区别

echo 不表现得像一个函数, 所以不能总是使用一个函数的上下文。 另外,如果你想给echo 传递多个参数, 那么就不能使用小括号。

print 有很多人说 print 是函数,严格来讲不是,虽然 print 有返回值,PHP 官网也说了:print 实际上不是一个函数(它是一个语言结构),因此你可以不必使用圆括号来括起它的参数列表。

print 与 echo 最大的区别是 print 有返回值,而 echo 没有。

实际上 print 的表现更像一个操作符。

以下是一些代码样例:

echo 1; // 合法
print 1; // 合法
echo (1); // 合法
print (1); // 合法
echo 1, 2, 3; // 合法
print 1, 2, 3; // 不合法 !!!
echo (1, 2, 3); // 不合法 !!!
print (1, 2, 3); // 不合法 !!!
5 + echo 1; // 不合法 !!!
5 + print 1; // 合法,因为 print 是有返回值的

var_dump(function_exists('print')); // 输出 bool(false) 也说明了 print 不是函数

最后的结论就是完全没必要使用 print,echo 可以输出逗号分隔的多个值,比较方便。PHP 代码编译后的 bytecode,echo 效率也会比 print 高(print 有返回值嘛,肯定要多一个执行步骤)。

3个评论

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注