Skip to content

8.2 形参、实参、默认参数

函数的参数是函数与外部世界交互的桥梁,了解参数的使用对于编写灵活的函数非常重要。

形参和实参

  • 形参:函数定义时声明的参数,是函数内部使用的变量
  • 实参:函数调用时传递的参数,是实际的值

默认参数

默认参数允许在函数定义时为参数设置默认值,当调用函数时不传递该参数时,会使用默认值。

示例代码

php
<?php
// 基本参数传递
function greet($name) {
    echo "Hello, $name!<br>";
}

// 调用函数,传递实参
greet("张三"); // "张三" 是实参

// 默认参数
function sayHello($name = "World") {
    echo "Hello, $name!<br>";
}

// 调用函数,不传递参数
sayHello(); // 使用默认值 "World"

// 调用函数,传递参数
sayHello("PHP"); // 使用传递的值 "PHP"

// 多个参数,部分有默认值
function calculate($num1, $num2, $operator = "+") {
    switch ($operator) {
        case "+":
            return $num1 + $num2;
        case "-":
            return $num1 - $num2;
        case "*":
            return $num1 * $num2;
        case "/":
            return $num1 / $num2;
        default:
            return "无效的运算符";
    }
}

echo "10 + 5 = " . calculate(10, 5) . "<br>"; // 使用默认运算符 "+"
echo "10 - 5 = " . calculate(10, 5, "-") . "<br>"; // 指定运算符 "-"

// 可变数量的参数(PHP 5.6+)
function sum(...$numbers) {
    $total = 0;
    foreach ($numbers as $number) {
        $total += $number;
    }
    return $total;
}

echo "1 + 2 + 3 = " . sum(1, 2, 3) . "<br>";
echo "4 + 5 + 6 + 7 = " . sum(4, 5, 6, 7) . "<br>";

// 引用传递
function increment(&$num) {
    $num++;
    echo "函数内部: $num<br>";
}

$value = 5;
echo "调用前: $value<br>";
increment($value);
echo "调用后: $value<br>";
?>

注意事项

  1. 默认参数必须放在非默认参数的后面
  2. 可以使用 ... 运算符接收可变数量的参数
  3. 使用引用传递(&)可以在函数内部修改外部变量
  4. 参数传递时,PHP 会进行值复制,除非使用引用传递

练习

  1. 创建一个函数,计算矩形的面积,宽度和高度为参数,高度默认为10
  2. 创建一个函数,接收任意数量的数字,返回它们的平均值
  3. 创建一个函数,使用引用传递修改外部变量的值

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