PHP8.0尝鲜系列(二):命名参数的使用

简介: PHP8.0尝鲜系列(二):命名参数的使用

在以往PHP版本中,如果函数或方法中含有多个可选参数,在调用时,我们需要将要传入的可选参数前面的所有可选参数进行赋值,这样其实对于参数传递非常不方便。因此,PHP8.0引入了命名参数(named_params)的概念。

命名参数定义


先看看官方对命名参数的定义(中文google翻译,不理解的看英文原文理解吧)PHP: rfc:named_params

Named arguments allow passing arguments to a function based on the parameter name, rather than the parameter position. This makes the meaning of the argument self-documenting, makes the arguments order-independent, and allows skipping default values arbitrarily.


命名参数允许基于参数名称(而不是参数位置)将参数传递给函数。 这使得自变量的含义可以自动记录,使自变量与顺序无关,并允许任意跳过默认值。

使用命名参数


说在前面

  • 可选参数和必需参数:本篇在定义的方法和函数中使用这两种名称
  • 位置参数和命名参数:本篇在方法和函数调用时使用这两种名称
  • 命名参数使用过程中最好将可选参数放在必需参数后面,否则容易产生错误,具体参考本篇最后一节【关于参数顺序问题】

函数中使用命名参数

function named_params($a, $b, $c = 0, $d = 0) {
     echo $a."-".$b."-".$c."-".$d;
}
echo "function: ";
named_params(1, 2, c:3);
// result:function: 1-2-3-0

image.png

对象方法中使用命名参数

class NamedParams {
     public function index($a, $b = 0, $c = 0) {
         echo $a."-".$b."-".$c;
     }
}
echo "class: ";
(new NamedParams)->index(1, c:3);
// result:class: 1-0-3

image.png

以上两种在使用上差别不大,分开讲方便理解。

关于参数顺序问题


定义一个可选参数和必需参数位置交叉的函数

function named_params($a, $b = 0, $c, $d = 0) {
    echo $a."-".$b."-".$c."-".$d;
}

#1 位置参数和命名参数交叉使用

# 1
echo "function: ";
named_params(1, b:2, 3);

运行后:PHP首先会报不推荐将必需参数放在可选参数后面;然后程序报错:不能将位置参数放在命名参数后面。

image.png

#2 改变必选参数位置传递

 # 2
 echo "function: ";
 named_params(1, 2, b:3);

运行后:PHP首先会报不推荐将必需参数放在可选参数后面;然后程序报错:命名参数覆盖了之前的参数,也就是在这里2和3都会被认为是$b的参数。

image.png

#3 直接使用位置参数传递

# 3
echo "function: ";
named_params(1, 2, 3, 4);

运行后:PHP首先会报不推荐将必需参数放在可选参数后面;然后正常返回结果

image.png

目录
相关文章
|
小程序 前端开发 PHP
PHP实现生成小程序二维码带参数进入指定页面、小程序URL scheme实现携带数据跳转小程序
PHP实现生成小程序二维码带参数进入指定页面、小程序URL scheme实现携带数据跳转小程序
209 0
|
1月前
|
JavaScript 前端开发 安全
php学习笔记-普通表单参数提交获取及页面的重定向和一个登录小demo-day05
本文介绍了PHP中普通表单参数的提交获取、页面重定向的方法,并通过一个登录示例演示了表单参数的封装和页面跳转处理。
|
1月前
|
SQL 关系型数据库 数据库连接
php连接数据库之PDO,PDO的简单使用和预定义占位符的使用以及PDOStatement对象的使用,占位符的不同形式,bindValue和bindParam绑定预定义占位符参数的区别
本文介绍了PHP中PDO(PHP Data Objects)扩展的基本概念和使用方法。内容包括PDO类和PDOStatement类的介绍,PDO的简单使用,预定义占位符的使用方法,以及PDOStatement对象的使用。文章还讨论了绑定预定义占位符参数的不同形式,即bindValue和bindParam的区别。通过具体示例,展示了如何使用PDO进行数据库连接、数据查询、数据插入等操作。
php连接数据库之PDO,PDO的简单使用和预定义占位符的使用以及PDOStatement对象的使用,占位符的不同形式,bindValue和bindParam绑定预定义占位符参数的区别
|
5月前
|
数据采集 存储 JavaScript
PHP爬虫技术:利用simple_html_dom库分析汽车之家电动车参数
本文旨在介绍如何利用PHP中的simple_html_dom库结合爬虫代理IP技术来高效采集和分析汽车之家网站的电动车参数。通过实际示例和详细说明,读者将了解如何实现数据分析和爬虫技术的结合应用,从而更好地理解和应用相关技术。
PHP爬虫技术:利用simple_html_dom库分析汽车之家电动车参数
|
5月前
|
监控 Linux 应用服务中间件
linux php-fpm优化 php-fpm.conf 重要参数详解
linux php-fpm优化 php-fpm.conf 重要参数详解
100 0
|
PHP
PHP - Laravel 路由参数
PHP - Laravel 路由参数
63 0
|
5月前
|
PHP
PHP进阶-默认参数值和可变参数列表
PHP函数支持默认参数值和可变参数列表两种特性。默认参数值,即可以为参数指定默认值,使得在函数调用时如果没有提供相应参数,则会使用默认值;可变参数列表,即使用不定数量的参数调用函数。本文将详细介绍这两种用法,并通过代码举例说明其使用场景。熟练掌握默认参数和可变参数列表的使用,可以极大地提高PHP开发的效率。
51 0
|
PHP
PHP - Laravel 视图模板(blade.php) 模板引入与使用,及模板使用页面参数
PHP - Laravel 视图模板(blade.php) 模板引入与使用,及模板使用页面参数
266 0