Skip to content

PHP Echo / Print

PHP 提供了两个主要的语言结构 (language constructs) 用于向浏览器发送输出(如文本、HTML 或变量值):echo 和 print。

尽管它们经常可以互换使用,尤其是在教程中,但了解它们微妙的差异还是很有用的。

echo 和 print 是用于输出数据非常相似的语言结构。它们的主要区别在于:

  • 返回值 (Return Value): echo 没有返回值(它纯粹是一个语言结构)。print 始终返回 1,这使得它可以在表达式中使用(尽管这很少实用或推荐)。
  • 参数 (Parameters): echo 可以接受多个以逗号分隔的参数(例如,echo $var1, $var2, " text";),尽管这种语法不常见。print 只能接受一个参数。
  • 性能 (Performance): echo 通常被认为比 print 稍快,因为它没有返回值。然而,在几乎所有实际应用中,这种差异都可以忽略不计。
  • 语法 (Syntax): 它们都可以带括号或不带括号使用参数,因为它们是语言结构,而不是函数(例如,echo "Hello"; 或 echo("Hello");)。当在复杂表达式中使用时(如果 print 这样使用,则更可能),带括号的语法更常见。

建议: 大多数 PHP 开发者更喜欢 echo,因为它本质上稍简单(没有返回值)并且是常用的约定。一致性至关重要;在你的项目中选择一个并坚持使用。

echo 用于输出字符串、数字、HTML 标记或变量的值。

<?php
echo "<h2>PHP is Fun!</h2>";
echo "Hello world!<br>";
echo "I'm about to learn PHP!<br>";
// 使用多个参数(不常见)
echo "This ", "string ", "was ", "made ", "with multiple parameters.";
?>

你可以直接在双引号字符串中嵌入变量,或使用点 (.) 运算符进行连接 (concatenate)。

<?php
$courseTitle = "Learn PHP";
$websiteName = "ExamplePlatform.com";
$num1 = 5;
$num2 = 4;
// 在双引号中嵌入变量
echo "<h2>$courseTitle</h2>";
echo "Study PHP at $websiteName<br>";
// 连接字符串和变量
echo "The sum of " . $num1 . " and " . $num2 . " is: " . ($num1 + $num2);
?>

print 的功能与 echo 类似,但只接受一个参数并返回 1。

<?php
print "<h2>PHP is Fun! (using print)</h2>";
print "Hello world!<br>";
print "I'm about to learn PHP!";
// 在表达式中使用 print(很少有用)
$isPrinted = print "<br>This was printed."; // Outputs the text and $isPrinted becomes 1
?>

与 echo 类似,你可以将变量嵌入双引号字符串中或使用连接符。

<?php
$courseTitle = "Learn PHP";
$websiteName = "ExamplePlatform.com";
$num1 = 5;
$num2 = 4;
// 嵌入变量
print "<h2>$courseTitle</h2>";
print "Study PHP at $websiteName<br>";
// 连接
print "The sum is: " . ($num1 + $num2);
?>

对于通用输出,echo 是 PHP 社区的标准选择。仅在你出于特定(尽管不常见)原因需要利用其在表达式中的返回值时,才使用 print。

对于更复杂的格式化,可以考虑使用 printf 或 sprintf 等函数。在 HTML 模板中输出时,短 echo 标签 (<?= $variable ?>) 可能很方便(确保 short_open_tag 已启用,或者使用 PHP 7.0+,在该版本中无论设置如何,短标签都始终可用)。