php 函数使用可变数量的参数方法

发布于 2017-08-07 16:57:47 | 89 次阅读 | 评论: 0 | 来源: 网友投递

PHP开源脚本语言PHP(外文名: Hypertext Preprocessor,中文名:“超文本预处理器”)是一种通用开源脚本语言。语法吸收了C语言、Java和Perl的特点,入门门槛较低,易于学习,使用广泛,主要适用于Web开发领域。PHP的文件后缀名为php。

下面小编就为大家带来一篇php 函数使用可变数量的参数方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧

php在用户自定义函数中支持可变数量的参数列表。

在php5.5及更早的版本中,使用func_num_args(), func_get_arg(), func_get_args()函数实现。

function myfunc(){

// 获取参数数量

echo func_num_args().PHP_EOL;

// 获取第一个参数的值:

print_r(func_get_arg(0));

echo PHP_EOL;

// 获取所有参数的值

print_r(func_get_args());

echo PHP_EOL;

}

myfunc('a');

myfunc(1, 2, 3);

myfunc(array('d','e'), array('f'));

?>

输出:

1

a

Array

(

[0] => a

)

3

1

Array

(

[0] => 1

[1] => 2

[2] => 3

)

2

Array

(

[0] => d

[1] => e

)

Array

(

[0] => Array

(

[0] => d

[1] => e

)

[1] => Array

(

[0] => f

)

)

在php5.6及以上的版本中,可以使用…语法实现。

例子1: 使用…$args代替任意数量参数

function myfunc(...$args){

// 获取参数数量

echo count($args).PHP_EOL;

// 获取第一个参数的值:

print_r($args[0]);

echo PHP_EOL;

// 获取所有参数的值

print_r($args);

echo PHP_EOL;

}

myfunc('a');

myfunc(1, 2, 3);

myfunc(array('d','e'), array('f'));

?>

输出结果与php5.5使用func_num_args(), func_get_arg(), func_get_args()函数一致。

例子2: 数组转为参数列表

function add($a, $b){

echo $a + $b;

}

$args = array(1, 2);

add(...$args); // 输出3

?>

例子3: 部分参数指定,其他参数数量不定

function display($name, $tag, ...$args){

echo 'name:'.$name.PHP_EOL;

echo 'tag:'.$tag.PHP_EOL;

echo 'args:'.PHP_EOL;

print_r($args);

echo PHP_EOL;

}

display('fdipzone', 'programmer');

display('terry', 'designer', 1, 2);

display('aoao', 'tester', array('a','b'), array('c'), array('d'));

?>

输出:

name:fdipzone

tag:programmer

args:

Array

(

)

name:terry

tag:designer

args:

Array

(

[0] => 1

[1] => 2

)

name:aoao

tag:tester

args:

Array

(

[0] => Array

(

[0] => a

[1] => b

)

[1] => Array

(

[0] => c

)

[2] => Array

(

[0] => d

)

)

以上这篇php 函数使用可变数量的参数方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持PHPERZ。

相关阅读:

php 函数使用可变数量的参数方法

PHP中的str_repeat函数在JavaScript中的实现方法

PHP中使用全局变量的几种方法

php 函数使用方法与函数定义方法

PHP的file_exists函数不支持中文名的解决方法

php中mail函数发送邮件失败的解决方法

php限制单ip每天浏览页数量的实现方法

php array_merge函数使用需要注意的一个问题

PHP文件生成的图片无法使用CDN缓存的解决方法

php array_walk_recursive 使用自定的函数处理数组中的每一个元素

php array_map使用自定义的函数处理数组中的每个值

使用php自动备份数据库表的实现方法

php可变方法,php 函数使用可变数量的参数方法相关推荐

  1. mysql创建有参数的函数,使用动态数量的参数创建MySQL存储函数

    我正在尝试创建一个MySQL函数IS_IN_ENUM('value','val1′,'val2′,'val3′),如果'value'在('val1′,'val2′,'val3')中,则返回true.我 ...

  2. day02--java基础编程:变量,数据类型,类型转换,运算规则,运算符,分支结构,循环(随机数),方法,重载,可变参数,递归,数组,冒泡排序

    1 Day02–变量+数据类型+类型转换 1.1 前言 1.1.1 标识符 可以简单的理解为一个名字.在Java中,我们需要标识代码的很多元素,包括包名.类名.方法.字段.变量等.我们选择的名称就称为 ...

  3. day02--java基础编程:变量,数据类型,类型转换,运算规则,Scanner,运算符,分支结构,循环(随机数),方法,重载,可变参数,递归,数组,冒泡排序

    1 Day02–变量+数据类型+类型转换 1.1 前言 1.1.1 标识符 可以简单的理解为一个名字.在Java中,我们需要标识代码的很多元素,包括包名.类名.方法.字段.变量等.我们选择的名称就称为 ...

  4. ML之sklearn:sklearn的make_pipeline函数、RobustScaler函数、KFold函数、cross_val_score函数的代码解释、使用方法之详细攻略

    ML之sklearn:sklearn的make_pipeline函数.RobustScaler函数.KFold函数.cross_val_score函数的代码解释.使用方法之详细攻略 目录 sklear ...

  5. ML之sklearn:sklearn的RobustScaler函数、KFold函数、cross_val_score函数的代码解释、使用方法之详细攻略

    ML之sklearn:sklearn的RobustScaler函数.KFold函数.cross_val_score函数的代码解释.使用方法之详细攻略 目录 sklearn的RobustScaler函数 ...

  6. 函数恒成立问题与参数的取值范围_高考中恒成立问题巧解方法

    函数内容作为高中数学知识体系的核心,也是历年高考的一个热点.在新课标下的高考越来越注重对学生的综合素质的考察,恒成立问题便是一个考察学生综合素质的很好途径,它主要涉及到一次函数.二次函数.三角函数.指 ...

  7. java 不定参数方法_java中不定长参数的使用方法

    java中不定长参数的使用方法 不定长参数方法的语法如下:返回值 方法名(参数类型...参数名称) 在参数列表中使用"..."形式定义不定长参数,其实这个不定长参数a就是一个数组, ...

  8. python函数如何实现可变参数_python之函数定义可变参数(任意数量参数)

    原博文 2020-05-23 11:49 − python中函数可以定义任意数量的参数,即可变参数. 比如: def fun(*args): print args 在可变参数的名字前面加一个*号,即可 ...

  9. python支持可变数量的参数、实参用参数名表示_以下关于函数参数传递的描述,错误的是:( )...

    以下关于函数参数传递的描述,错误的是:( ) 答:Python 支持可变数量的参数,实参用"*参数名"表示 可同时打开()个Excel 窗口 答:若干 下列各项属于企业存货的有(? ...

最新文章

  1. ImageLazyLoad-图片随着滚动而进行加载
  2. python 实现 softmax
  3. php 如何设计索引_Mysql学习浅谈mysql的索引设计原则以及常见索引的区别
  4. 获取计算机主机mac地址的命令有,怎么获取计算机的MAC地址和IP地址?
  5. .NET Framework 1.1 中 SmartNavigation 的实现
  6. 【转载】opencl中设备内存
  7. Ubuntu下Tinyos安装步骤
  8. google三件套是什么_什么是Google?
  9. java数组里的索引越界问题、空指针异常问题
  10. mysql删除语句菜鸟教程_Mysql基本的增删改查
  11. maven pom.lastupdated
  12. Android 梯形进度条、下载进度条;
  13. 划片机的性能决定了芯片产品的质量
  14. 小程序 实现星星评分(共10分),含有半星
  15. 通过具体的例子说明一维和二维的相关运算、卷积运算究竟是怎么做的。
  16. python计算器函数_用Python实现计算器函数的一个小练习,python,功能
  17. DTCC呼吁银行和监管机构帮助解决区块链安全问题
  18. html制作登陆注册页面
  19. 修改echarts饼状图鼠标样式
  20. 人脸识别的安全门禁系统设计

热门文章

  1. html静态化和动态页面,web动态页面静态化,伪静态
  2. utc转换成时间 mysql_在select语句中将Datetime列从UTC转换为本地时间
  3. 买g 怀旧 被封号_防火防盗防封号 《魔兽世界》怀旧服自救指南
  4. qt定时器暂停与重新开始_手把手教你写个小程序定时器管理库
  5. 关闭java程序脚本-linux
  6. MySQL无法读表错误的解决方法(MySQL 1018 error)
  7. Android5.0和6.0之后新增的控件说明
  8. 「小程序JAVA实战」小程序的留言和评价功能(70)
  9. UITableView基本用法
  10. vSphere5.1升级5.5(二)——升级Esxi主机及vmware tools