PHP 参数化函数

13 May 2025 | 5 分钟阅读

PHP 参数化函数是指带有参数的函数。您可以在函数中传递任意数量的参数。这些传递的参数在函数内部充当变量。

一个或多个参数可以被发送到一个PHP 函数。在创建函数时,参数是包含在函数名之前的括号中的表达式列表,用逗号分隔。参数可以是数组、对象、函数或任何标量类型(数字、字符串或布尔值)。

语法

在函数体内部,参数充当将被处理的变量。因此,它们可以包含字母、数字和下划线,并且根据任何其他变量的命名规则,它们应以“$”开头。

注意:可以指定的参数数量是无限的。

在调用参数化函数时,您必须确保函数接收的值的数量与函数声明中指定的参数数量相等。

foo(val1, val2, val_n);

参数化函数可能会根据传入的值动态地提供结果。

示例

在此示例中,我们在两个函数 add()sub() 中传递了两个参数 $x$y

立即执行

输出

Sum of two numbers is = 1410
Difference between two numbers is = 476

形式参数和实际参数

参数有时被称为参数。实际上,这两个名称之间存在区别。

  • 参数是在调用函数时提供给函数的值,而参数是在函数声明中使用的变量。
  • 参数可以是表达式、变量或字面量。
  • 提供的内容称为实际参数,而函数声明中的参数也通常称为形式参数。
  • 形式参数和实际参数的名称不必相同。从左到右,将适当的形式参数赋予实际参数的值。
  • 函数中声明的形式参数和提供的实际参数的数量应相等。

示例

当实际参数少于形式参数时,PHP 会产生 ArgumentCountError。但是,如果实际参数多于形式参数,则会被忽略。

示例

立即执行

输出

First number: 10 
Second number: 20 
Addition: 30 
PHP Fatal error:  Uncaught ArgumentCountError: To few arguments
to function addition(), 1 passed in /home/cg/root/20048/main.php
on line 16 and exactly 2 expected in /home/cg/root/20048/main.php:2

为函数参数设置默认值

PHP 可以为函数参数设置默认参数值。如果未为具有默认值的参数提供任何参数,PHP 将在函数调用中使用参数的默认设置值。

示例

立即执行

输出

Good Morning, Alice! 
Hello, Bob!

参数中的类型不匹配

由于 PHP 是一种动态类型语言,因此在复制实际参数的值到形式参数时,PHP 不需要进行类型检查。但是,如果函数体内的语句尝试执行不支持的数据类型特定操作,PHP 会抛出异常。

上述 addition() 过程预计会接收数值参数。PHP 在提供字符串参数时没有问题。但是,“+”运算符未为字符串类型指定。因此,执行加法的语句会出错。

示例

立即执行

输出

PHP Fatal error:  Uncaught TypeError: Unsupported operand types: string + string in hello.php:5

然而,PHP 是一种弱类型语言。在可能的情况下,它会尝试将变量转换为合适的类型。为了执行加法运算,如果提供的其中一个值是数字的字符串表示形式,而另一个是数字变量,则PHP 会将字符串变量转换为数字。

示例

立即执行

输出

First value: Hello
Second value: 2024
Concatenated result: Hello2024

实时应用

具有动态数量的加法和减法

在此示例中,我们在两个函数 add() 和 sub() 中传递了两个参数 $x 和 $y。

代码

立即执行

输出

PHP Parametrized function 2

我们传递了以下数字,

PHP Parametrized function 3

现在点击 ADDITION 按钮,我们得到以下输出。

PHP Parametrized function 4

现在点击 SUBTRACTION 按钮,我们得到以下输出。

PHP Parametrized function 5
下一个主题PHP 按值调用