PHP实现动态获取函数参数的方法示例


Posted in PHP onApril 02, 2018

本文实例讲述了PHP实现动态获取函数参数的方法。分享给大家供大家参考,具体如下:

PHP 在用户自定义函数中支持可变数量的参数列表。其实很简单,只需使用 func_num_args()func_get_arg() ,和 func_get_args()  函数即可。

可变参数并不需要特别的语法,参数列表仍按函数定义的方式传递给函数,并按通常的方式使用这些参数。

1. func_num_args — 返回传入函数的参数总个数

int func_num_args ( void )

示例

<?php
function demo ()
{
  $numargs = func_num_args ();
  echo "参数个数为: $numargs \n" ;
}
demo ( 'a' , 'b' , 'c' );

运行结果

参数个数为: 3

2. func_get_args — 返回传入函数的参数列表

array func_get_args  ( void )

示例

<?php
function demo ()
{
  $args = func_get_args();
  echo "传入的参数分别为:";
  var_dump($args);
}
demo ( 'a' , 'b' , 'c' );

运行结果

传入的参数分别为:
array (size=3)
  0 => string 'a' (length=1)
  1 => string 'b' (length=1)
  2 => string 'c' (length=1)

3. func_get_arg — 根据参数索引从参数列表返回参数值

mixed  func_get_arg  ( int $arg_num  )

示例

<?php
function demo ()
{
  $numargs = func_num_args ();
  echo "参数个数为: $numargs <br />" ;
  $args = func_get_args();
  if ( $numargs >= 2 ) {
    echo "第二个参数为: " . func_get_arg ( 1 ) . "<br />" ;
  }
}
demo ( 'a' , 'b' , 'c' );

运行结果

参数个数为: 3
第二个参数为: b

希望本文所述对大家PHP程序设计有所帮助。

PHP 相关文章推荐
Http 1.1 Etag 与 Last-Modified提高php效率
Jan 10 PHP
快速开发一个PHP扩展图文教程
Dec 12 PHP
解析php安全性问题中的:Null 字符问题
Jun 21 PHP
php调用MySQL存储过程的方法集合(推荐)
Jul 03 PHP
thinkphp 一个页面使用2次分页的实现方法
Jul 15 PHP
php中error与exception的区别及应用
Jul 28 PHP
MyEclipse常用配置图文教程
Sep 11 PHP
php上传大文件失败的原因及应对策略
Oct 20 PHP
PHP实现通过URL提取根域名
Mar 31 PHP
基于PHP制作验证码
Oct 12 PHP
详解PHP使用日期时间处理器Carbon人性化显示时间
Aug 10 PHP
PHP array_reverse() 函数原理及实例解析
Jul 14 PHP
PHP调用其他文件中的类
Apr 02 #PHP
为何说PHP引用是个坑,要慎用
Apr 02 #PHP
PHP实现的一致性Hash算法详解【分布式算法】
Mar 31 #PHP
PHP实现基于PDO扩展连接PostgreSQL对象关系数据库示例
Mar 31 #PHP
ThinkPHP框架中使用Memcached缓存数据的方法
Mar 31 #PHP
PHPTree――php快速生成无限级分类
Mar 30 #PHP
CMSPRESS 10行代码搞定 PHP无限级分类2
Mar 30 #PHP
You might like
PHP新手上路(三)
2006/10/09 PHP
php 删除无限级目录与文件代码共享
2008/11/22 PHP
浅析get与post的一些特殊情况
2014/07/28 PHP
YII Framework框架教程之日志用法详解
2016/03/14 PHP
[原创]图片分页查看
2006/08/28 Javascript
JavaScript获取FCK编辑器信息的具体方法
2013/07/12 Javascript
ExtJs纵坐标值重复问题的解决方法
2014/02/27 Javascript
JavaScript各类型的关系图解
2015/10/16 Javascript
快速学习jQuery插件 jquery.validate.js表单验证插件使用方法
2015/12/01 Javascript
jQuery 3.0 的变化及使用方法
2016/02/01 Javascript
纯原生js实现table表格的增删
2017/01/05 Javascript
vue环境搭建简单教程
2017/11/07 Javascript
JavaScript对象拷贝与赋值操作实例分析
2018/12/10 Javascript
10行代码实现微信小程序滑动tab切换
2018/12/28 Javascript
微信小程序实现滑动切换自定义页码的方法分析
2018/12/29 Javascript
swiper实现异形轮播效果
2019/11/28 Javascript
[38:42]完美世界DOTA2联赛循环赛 Matador vs Forest BO2第二场 11.05
2020/11/05 DOTA
Python使用MySQLdb for Python操作数据库教程
2014/10/11 Python
详解python--模拟轮盘抽奖游戏
2019/04/12 Python
使用Python的turtle模块画国旗
2019/09/24 Python
python Selenium 库的使用技巧
2020/10/16 Python
HTML5自定义data-* data(obj)属性和jquery的data()方法的使用
2012/12/13 HTML / CSS
HTML块级标签汇总(小篇)
2016/07/13 HTML / CSS
当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里到底是值传递还是引用传递?
2014/09/09 面试题
手术室护士自我鉴定
2013/10/14 职场文书
小学教研工作制度
2014/01/15 职场文书
初中数学教学反思
2014/01/16 职场文书
大学生校园创业计划书
2014/02/08 职场文书
爱祖国演讲稿
2014/05/04 职场文书
领导班子四风问题个人对照检查材料
2014/10/04 职场文书
乱丢垃圾袋检讨书
2014/10/08 职场文书
付款承诺函范文
2015/01/21 职场文书
银行柜员优质服务心得体会
2016/01/22 职场文书
一年之计:2019年下半年的计划
2019/05/07 职场文书
基于Redis过期事件实现订单超时取消
2021/05/08 Redis
CSS3实现指纹特效代码
2022/03/17 HTML / CSS