php可变长参数处理函数详解


Posted in PHP onFebruary 22, 2017

本文实例讲述了php可变长参数处理函数。分享给大家供大家参考,具体如下:

与C++一样,PHP中也可以对含有可变参数的函数进行处理,道理都一样,需要函数来专门处理参数列表。PHP中提供了三个相关的函数:

1. func_num_args()  -- 返回传递给函数的参数个数

int func_num_args ( void )

示例:

function open_database($DB, $cache_size_or_values=null, $cache_size=null)
{
  switch (function_num_args())
  {
    case 1:
      $r = select_db($DB);
      break;
    case 2:
      $r = select_db($DB, $cache_size_or_values);
      break;
    case 3:
      $r = select_db($DB, $cache_size_or_values, $cache_size);
      break;
  }
  return is_resource($r);
}

2. func_get_arg()  -- 返回指定的参数

mixed func_get_arg ( int arg_num)

参数列表中的第一个参数的 arg_num 是0

<?php
  function some_func($a, $b)
  {
    for($i = 0; $i<func_num_args(); ++$i)
    {
      $param = func_get_arg($i);
      echo "the param is $param\n"
    }
  }
  some_func(1,3,5,7,9);
?>

3. func_get_args()  -- 以数组的形式返回参数列表

array func_get_args ( void )

示例:

<?php
  function some_other_func($a, $b)
  {
    $param = func_get_args();
    $param = join(", ", $param);  // 分解显示
    echo "the arglist is: $param\n";
  }
  some_other_func(1,3,5,7,9);
?>

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

PHP 相关文章推荐
不用数据库的多用户文件自由上传投票系统(2)
Oct 09 PHP
怎样在PHP中通过ADO调用Asscess数据库和COM程序
Oct 09 PHP
php中根据某年第几天计算出日期年月日的代码
Feb 24 PHP
PHP开发不能违背的安全规则 过滤用户输入
May 01 PHP
探讨:如何编写PHP扩展
Jun 13 PHP
php 创建以UNIX时间戳命名的文件夹(示例代码)
Mar 08 PHP
PHP实现WebService的简单示例和实现步骤
Mar 27 PHP
PHP array_key_exists检查键名或索引是否存在于数组中的实现方法
Jun 13 PHP
PHP 极验验证码实例讲解
Sep 29 PHP
支付宝支付开发――当面付条码支付和扫码支付实例
Nov 04 PHP
php 变量引用与变量销毁机制详细介绍
Dec 05 PHP
PDO::lastInsertId讲解
Jan 29 PHP
php操作access数据库的方法详解
Feb 22 #PHP
Smarty3配置及入门语法
Feb 22 #PHP
PHP中ajax无刷新上传图片与图片下载功能
Feb 21 #PHP
PHP+JavaScript实现无刷新上传图片
Feb 21 #PHP
PHP编辑器PhpStrom运行缓慢问题
Feb 21 #PHP
如何离线执行php任务
Feb 21 #PHP
PHP实现上传多文件示例代码
Feb 20 #PHP
You might like
php 日期和时间的处理-郑阿奇(续)
2011/07/04 PHP
九个你必须知道而且又很好用的php函数和特点
2013/08/08 PHP
PHP面向对象之旅:深入理解static变量与方法
2014/01/06 PHP
PHP网页安全认证的实例详解
2017/09/28 PHP
javascript 四则运算精度修正函数代码
2010/05/31 Javascript
Ext 今日学习总结
2010/09/19 Javascript
js自定义事件代码说明
2011/01/31 Javascript
jQuery + Flex 通过拖拽方式动态改变图片的代码
2011/08/03 Javascript
javascript中处理时间戳为日期格式的方法
2014/01/02 Javascript
JavaScript中的数学运算介绍
2014/12/29 Javascript
JavaScript中实现Map的示例代码
2015/09/09 Javascript
js获取浏览器高度 窗口高度 元素尺寸 偏移属性的方法
2016/11/21 Javascript
微信小程序 后台登录(非微信账号)实例详解
2017/03/31 Javascript
利用Jasmine对Angular进行单元测试的方法详解
2017/06/12 Javascript
浅析Node.js非对称加密方法
2018/01/29 Javascript
JS常用正则表达式超全集(密码强度校验,金额校验,IE版本,IPv4,IPv6校验)
2020/02/03 Javascript
详解微信小程序工程化探索之webpack实战
2020/04/20 Javascript
echarts柱状图背景重叠组合而非并列的实现代码
2020/12/10 Javascript
详解ES6实现类的私有变量的几种写法
2021/02/10 Javascript
理解python正则表达式
2016/01/15 Python
python实现在图片上画特定大小角度矩形框
2018/10/24 Python
python-pyinstaller、打包后获取路径的实例
2019/06/10 Python
Python二元赋值实用技巧解析
2019/10/25 Python
python zip()函数的使用示例
2020/09/23 Python
Ralph Lauren拉夫·劳伦美国官网:带有浓郁美国气息的高品味时装品牌
2017/11/01 全球购物
灵泰克Java笔试题
2016/01/09 面试题
医院护士的求职信
2014/01/03 职场文书
《自然之道》教学反思
2014/02/11 职场文书
《春到梅花山》教学反思
2014/04/16 职场文书
汽车专业求职信
2014/06/05 职场文书
工地安全生产标语
2014/06/06 职场文书
班主任经验交流材料
2014/12/16 职场文书
获奖感言范文
2015/07/31 职场文书
MySQL基础(一)
2021/04/05 MySQL
Python利器openpyxl之操作excel表格
2021/04/17 Python
Axios代理配置及封装响应拦截处理方式
2022/04/07 Vue.js