Skip to content

3.3 输出语句 echo /print/var_dump

在 PHP 中,有多种方式可以输出内容。本文将介绍最常用的输出语句:echoprintvar_dump

1. echo 语句

基本用法

php
echo "Hello, World!";

特点

  • 输出多个值:可以用逗号分隔多个值
  • 无返回值:执行后不返回任何值
  • 速度快:相比 print 更快
  • 可以省略括号echo "text";echo("text"); 都可以

示例

php
// 输出字符串
echo "Hello, World!";

// 输出多个值
echo "Hello", " ", "World!";

// 输出变量
$name = "PHP";
echo "I love $name";

// 输出 HTML
echo "<h1>Welcome</h1>";

// 输出表达式
echo 1 + 2;

2. print 语句

基本用法

php
print "Hello, World!";

特点

  • 只能输出一个值:不能用逗号分隔多个值
  • 有返回值:成功返回 1,失败返回 0
  • 速度较慢:相比 echo 稍慢
  • 可以省略括号print "text";print("text"); 都可以

示例

php
// 输出字符串
print "Hello, World!";

// 输出变量
$name = "PHP";
print "I love $name";

// 输出表达式
print 1 + 2;

// 利用返回值
$result = print "Hello";
echo "<br>返回值: $result";

3. var_dump 函数

基本用法

php
var_dump($variable);

特点

  • 输出变量的详细信息:包括类型和值
  • 用于调试:非常适合调试时查看变量内容
  • 输出数组和对象:会递归输出数组和对象的结构
  • 有返回值:返回 void

示例

php
// 输出字符串
$string = "Hello";
var_dump($string);
// 输出: string(5) "Hello"

// 输出整数
$int = 123;
var_dump($int);
// 输出: int(123)

// 输出数组
$array = [1, 2, 3, "four"];
var_dump($array);
// 输出数组的详细结构

// 输出对象
class Person {
    public $name = "John";
    public $age = 30;
}
$person = new Person();
var_dump($person);
// 输出对象的详细结构

4. print_r 函数

基本用法

php
print_r($variable);

特点

  • 输出变量的可读表示:比 var_dump 更简洁
  • 用于调试:适合查看数组和对象
  • 可选参数:设置为 true 时返回字符串而不输出

示例

php
// 输出数组
$array = [1, 2, 3, "four"];
print_r($array);
// 输出: Array ( [0] => 1 [1] => 2 [2] => 3 [3] => four )

// 输出对象
$person = new Person();
print_r($person);
// 输出对象的属性

// 返回字符串
$array_str = print_r($array, true);
echo $array_str;

5. var_export 函数

基本用法

php
var_export($variable);

特点

  • 输出变量的 PHP 代码表示:可以直接复制为 PHP 代码
  • 用于调试:适合查看变量的结构
  • 可选参数:设置为 true 时返回字符串而不输出

示例

php
// 输出数组
$array = [1, 2, 3, "four"];
var_export($array);
// 输出: array ( 0 => 1, 1 => 2, 2 => 3, 3 => 'four', )

// 返回字符串
$array_str = var_export($array, true);
echo $array_str;

6. 输出控制

6.1 输出缓冲

php
ob_start(); // 开始输出缓冲
echo "Hello";
$output = ob_get_contents(); // 获取缓冲内容
ob_end_clean(); // 清空缓冲并关闭

echo "缓冲内容: $output";

6.2 输出到文件

php
// 输出到浏览器
echo "Hello, Browser!";

// 输出到文件
file_put_contents('output.txt', 'Hello, File!');

// 使用 fwrite
$file = fopen('output.txt', 'w');
fwrite($file, 'Hello, File!');
fclose($file);

7. 输出格式化

7.1 sprintf 函数

php
// 格式化字符串
$name = "John";
$age = 30;
$message = sprintf("My name is %s and I am %d years old.", $name, $age);
echo $message;
// 输出: My name is John and I am 30 years old.

7.2 printf 函数

php
// 直接输出格式化字符串
$name = "John";
$age = 30;
printf("My name is %s and I am %d years old.", $name, $age);
// 输出: My name is John and I am 30 years old.

8. 输出 HTML 特殊字符

8.1 htmlspecialchars 函数

php
// 转义 HTML 特殊字符
$html = "<script>alert('XSS')</script>";
echo htmlspecialchars($html);
// 输出: &lt;script&gt;alert('XSS')&lt;/script&gt;

8.2 htmlentities 函数

php
// 转义所有 HTML 实体
$text = "© 2023";
echo htmlentities($text);
// 输出: &copy; 2023

9. 输出 JSON

php
// 输出 JSON
$data = [
    'name' => 'John',
    'age' => 30,
    'email' => 'john@example.com'
];
header('Content-Type: application/json');
echo json_encode($data);
// 输出: {"name":"John","age":30,"email":"john@example.com"}

10. 最佳实践

10.1 选择合适的输出函数

  • echo:用于常规输出,速度最快
  • print:用于需要返回值的情况
  • var_dump:用于调试,查看变量详细信息
  • print_r:用于调试,查看数组和对象的可读表示
  • var_export:用于生成可复制的 PHP 代码

10.2 输出安全

  • 转义输出:对于用户输入,使用 htmlspecialchars 防止 XSS
  • 设置正确的 Content-Type:根据输出内容设置适当的 Content-Type
  • 避免直接输出用户输入:始终验证和清理用户输入

10.3 性能考虑

  • 减少输出次数:合并输出语句,减少 I/O 操作
  • 使用输出缓冲:对于大量输出,使用输出缓冲提高性能
  • 避免在循环中输出:在循环中收集数据,循环结束后一次性输出

11. 示例:综合使用

php
<?php
// 定义变量
$name = "PHP";
$version = 8.1;
$features = ["简单易学", "性能优异", "生态丰富"];

// 使用 echo 输出
echo "<h1>欢迎学习 $name</h1>";
echo "<p>当前版本: $version</p>";
echo "<h2>主要特性:</h2>";
echo "<ul>";

// 循环输出数组
foreach ($features as $feature) {
    echo "<li>$feature</li>";
}
echo "</ul>";

// 使用 var_dump 调试
echo "<h2>调试信息:</h2>";
echo "<pre>";
var_dump($features);
echo "</pre>";

// 使用 print_r 输出
echo "<h2>数组结构:</h2>";
echo "<pre>";
print_r($features);
echo "</pre>";
?>

12. 总结

PHP 提供了多种输出语句,每种都有其特定的用途:

  • echo:最常用的输出语句,速度快,支持多个参数
  • print:类似于 echo,但只能输出一个参数,有返回值
  • var_dump:用于调试,输出变量的详细信息
  • print_r:用于调试,输出变量的可读表示
  • var_export:输出变量的 PHP 代码表示

选择合适的输出语句,结合输出控制和安全实践,可以写出更加高效、安全的 PHP 代码。

© 2026 编程马·菜鸟教程 版权所有