- PHP 菜鸟教程
- PHP - 教程
- PHP - 简介
- PHP - 安装
- PHP - 历史
- PHP - 功能
- PHP - 语法
- PHP - Hello World
- PHP - 注释
- PHP - 变量
- PHP - echo 语句和 print 语句
- PHP - var_dump() 函数
- PHP - $ 和 $$ 变量
- PHP - 常量
- PHP - 魔术常量
- PHP – 数据类型
- PHP - 类型转换
- PHP - 类型戏法
- PHP - 字符串
- PHP - 布尔值
- PHP - 整数
- PHP - 文件和I/O
- PHP – 数学函数
- PHP - Heredoc & Nowdoc
- PHP - 复合类型
- PHP - 文件包含
- PHP - 日期和时间
- PHP - 标量类型声明
- PHP - 返回类型声明
- PHP 运算符
- PHP - 运算符类型
- PHP - 算术运算符示例
- PHP - 比较运算符示例
- PHP - 逻辑运算符示例
- PHP - 赋值运算符示例
- PHP – 字符串运算符
- PHP – 数组运算符
- PHP – 条件运算符示例
- PHP - Spread 运算符
- PHP - Null 合并运算符
- PHP - Spaceship 运算符
- PHP 控制语句
- PHP – 决策
- PHP - If…Else 语句
- PHP - Switch 语句
- PHP – 循环类型
- PHP - For 循环
- PHP - Foreach 循环
- PHP - While 循环
- PHP - do...While 循环
- PHP - Break 语句
- PHP - Continue 语句
- PHP 数组
- PHP - 数组
- PHP - 索引数组
- PHP - 关联数组
- PHP - 多维数组
- PHP - 数组函数
- PHP - 常量数组
- PHP 函数
- PHP - 函数
- PHP - 函数参数
- PHP - 按值调用
- PHP - 按引用调用
- PHP - 默认参数
- PHP - 命名参数
- PHP - 变量参数
- PHP - 返回值
- PHP - 传递函数
- PHP - 递归函数
- PHP - 类型提示
- PHP - 变量范围
- PHP - 严格类型
- PHP - 匿名函数
- PHP - 箭头( Arrow )函数
- PHP - 变量处理函数
- PHP - 局部变量
- PHP - 全局变量
- PHP 超全局变量
- PHP - 超全局变量
- PHP - $GLOBALS 变量
- PHP - $_SERVER 变量
- PHP - $_REQUEST 变量
- PHP - $_POST 变量
- PHP - $_GET 变量
- PHP - $_FILES 变量
- PHP - $_ENV 变量
- PHP - $_COOKIE 变量
- PHP - $_SESSION 变量
- PHP 文件处理
- PHP - 文件处理
PHP - 命名参数
命名参数的功能已在 PHP 8.0 版中引入。它是在调用时将位置参数传递给函数的现有机制的扩展。
默认情况下,传递的参数的值将复制到同一位置的相应形式参数。PHP 中命名参数的这一功能使得可以根据参数名称而不是位置来传递值。
如果我们有一个定义如下的函数 -
function myfunction($x, $y) {
statement1;
statement2;
. . .
}
它被称为 -
myfunction(10, 20);
在这种情况下,值将按声明顺序传递给变量 “x” 和 “y”。这意味着,第一个值到第一个参数,第二个值到第二个参数,依此类推。变量 “x” 和 “y” 是位置参数。
要通过命名参数传递值,请指定参数名称,该值将传递到哪个参数。参数的名称是不带 “$” 符号的形参的名称。要传递的值放在 “:” 符号前面。
myfunction(x:10, y:20);
例
这是演示如何在 PHP 中使用命名参数的代码 -
<?php
function myfunction($x, $y) {
echo "x = $x y = $y";
}
myfunction(x:10, y:20);
?>
它将产生以下输出 -
x = 10 y = 20
使用命名参数可以按任何 Sequences 传递值,而不必按照在函数定义中声明参数的相同 Sequences。我们可以调用如下所示的 myfunction(),它将产生相同的结果。
myfunction(y:20, x:10);
使用此功能,参数变得与顺序无关且自记录。它还允许任意跳过具有默认值的参数。
将命名参数与位置参数组合在一起
命名参数可以与位置参数组合,条件是命名参数必须位于位置参数之后。
<?php
function myfunction($x, $y, $z) {
echo "x = $x y = $y z = $z";
}
myfunction(10, z:20, y:30);
?>
它将产生以下输出 -
x = 10 y = 30 z = 20
但是,如果您尝试将 $z 视为位置参数,
myfunction(x:10, y:20, 30);
在这种情况下,PHP 将遇到以下错误 -
PHP Fatal error: Cannot use positional argument after
named argument in hello.php on line 7
named argument in hello.php on line 7
从数组中传递命名参数
PHP 8.1.0 还引入了另一个功能,允许在解包参数后使用 named 参数。数组中的值不是单独为每个参数提供值,而是使用 “...” 将数组中的值解包到相应的参数中。(三个点)。
例
<?php
function myfunction($x, $y, $z=30) {
echo "x = $x y = $y z = $z";
}
myfunction(...[10, 20], z:30);
?>
它将产生以下输出 -
x = 10 y = 20 z = 30
请注意,多次传递同一参数会导致异常,如下所示 -
myfunction(x:10, z:20, x:20);
误差 −
PHP Fatal error: Uncaught Error: Named parameter $x
overwrites previous argument in hello.php:7
overwrites previous argument in hello.php:7