← PHP print详解:跟echo到底差在哪儿? 没有下一篇了 →

PHP输出二选一:echo和print到底选哪个?

原创 2026-05-08 PHP 已有人查阅

PHP里往浏览器扔东西出去,两个最常见的家伙就是echoprint。表面上看它们干的是同一件事,但底层的设计思路不太一样。这篇把两个放在一起对比,看完你就知道什么时候该用谁。

一、echo是什么?

echo是PHP里的语言结构(language construct),不是函数。这意味着你用不用括号都行。它最实用的特点是——支持多个参数,用逗号隔开。

echo语法:

<?php
// 不用括号
echo "代码号开始学PHP";
// 用括号
echo("代码号用括号也行");
?>

echo能做什么:

<?php
// 输出普通字符串
echo "欢迎来到代码号学习网<br>";

// 输出变量
$siteName = "代码号教程";
echo "网站名称:" . $siteName . "<br>";

// 多个参数一次输出(print做不到)
echo "PHP ", "JavaScript ", "Python ", "都可以学";
?>

输出结果:

欢迎来到代码号学习网
网站名称:代码号教程
PHP JavaScript Python 都可以学

echo的特点:

  • 可以带括号也可以不带

  • 没有返回值(void)

  • 支持多个参数,逗号分隔

  • 速度比print稍快

二、print是什么?

print也是语言结构,用法跟echo类似,但有一个明显区别——它返回整数1。另外print不支持多参数。

print语法:

<?php
// 不用括号
print "代码号学print输出";
// 用括号
print("代码号用括号也可以");
?>

print能做什么:

<?php
// 输出字符串
print "代码号教程——每天进步一点点<br>";

// 输出变量
$author = "代码号团队";
print "作者:" . $author . "<br>";

// 下面这行会报错!print不支持多参数
// print "参数一", "参数二";
?>

print的特点:

  • 可以带括号也可以不带

  • 返回值固定为1

  • 只能接受一个参数

  • 速度比echo稍慢

三、echo和print的详细对比

对比项 echo print
类型 语言结构 语言结构
括号 可选 可选
返回值 整数1
多参数 支持(逗号分隔) 不支持
常用场景 常规输出 表达式中使用
执行速度 较快 稍慢

四、代码号示例:实际代码对比

示例1:输出变量信息

<?php
$courseName = "PHP从入门到实战";
$teacher = "代码号讲师";
$year = 2026;

// 用echo输出
echo "课程名称:" . $courseName . "<br>";
echo "讲师:" . $teacher . "<br>";
echo "年份:" . $year . "<br>";

// 用print输出
print "课程名称:" . $courseName . "<br>";
print "讲师:" . $teacher . "<br>";
print "年份:" . $year;
?>

示例2:多参数输出(echo专属)

<?php
// echo可以这样写,省去拼接的麻烦
echo "PHP ", "是一门 ", "后端语言 ", "2026年仍然流行";

// print这样写会报语法错误
// print "PHP ", "是一门 ", "后端语言";

// print只能写成拼接形式
print "PHP " . "是一门 " . "后端语言 " . "2026年仍然流行";
?>

示例3:print返回值可以在表达式中用

<?php
// echo没有返回值,下面这行会报错
// $result = echo "测试";

// print有返回值1,可以这样写
$returnValue = print "代码号教程输出成功<br>";
echo "print返回的值是:" . $returnValue;
?>

输出:

代码号教程输出成功
print返回的值是:1

五、个人经验:为什么我几乎只用echo?

写PHP有些年头了,简单说下我的习惯。

常规输出100%用echo。原因很简单:

  1. 更灵活:想输出多个东西不用拼接,直接逗号隔开

  2. 更顺手:不用记返回值这种用不上的特性

  3. 代码更干净:少写点拼接符.,阅读舒服

print那个返回值1的特性,理论上有用,但现实中我没遇到必须用print的场景。有人可能会这样做:

<?php
if (print "输出成功") {
    // 会执行,因为print返回1
}
?>

但这有什么实际意义?判断输出是否成功不是靠返回值,而是靠业务逻辑本身。

代码号建议:统一用echo就够了。print的存在更多是PHP历史遗留的多样性,知道它、能看懂就够了,不需要主动用它。

六、特殊情况说明

虽然echo不支持整个数组直接输出,但可以配合print_r()使用。print也一样。

<?php
$lessons = ["变量", "循环", "函数", "数组"];

// 输出整个数组结构
echo "<pre>";
print_r($lessons);
echo "</pre>";

// 输出数组某个元素
echo $lessons[0];  // 输出:变量
print $lessons[1]; // 输出:循环
?>

七、本节课程知识要点

知识点 说明
echo多参数 echo "a", "b", "c" 合法,print不行
print返回值 固定返回整数1,echo无返回值
执行速度 echo略快于print(差异很小)
语法写法 两者都可加或不加括号
日常选型 常规输出用echo足够
数组输出 两者都不能直接输出数组,用print_r()
← PHP print详解:跟echo到底差在哪儿? 没有下一篇了 →
分享笔记 (共有 篇笔记)
验证码:
微信公众号