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 相关文章推荐
PHP与MySQL开发中页面乱码的产生与解决
Mar 27 PHP
关于Intype一些小问题的解决办法
Mar 28 PHP
php下关于Cannot use a scalar value as an array的解决办法
Aug 08 PHP
PHP中call_user_func_array()函数的用法演示
Feb 05 PHP
解析:通过php socket并借助telnet实现简单的聊天程序
Jun 18 PHP
php过滤XSS攻击的函数
Nov 12 PHP
CI(CodeIgniter)框架配置
Jun 10 PHP
PHP管理依赖(dependency)关系工具 Composer的自动加载(autoload)
Aug 18 PHP
php获取从html表单传递数组的方法
Mar 20 PHP
TP3.2批量上传文件或图片 同名冲突问题的解决方法
Aug 01 PHP
laravel框架实现敏感词汇过滤功能示例
Feb 15 PHP
PHP date_default_timezone_set()设置时区操作实例分析
May 16 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概述.
2006/10/09 PHP
openPNE常用方法分享
2011/11/29 PHP
PHP使用GIFEncoder类生成gif动态滚动字幕
2014/07/01 PHP
php中final关键字用法分析
2016/12/07 PHP
详细解读php的命名空间(二)
2018/02/21 PHP
jquery使用ColorBox弹出图片组浏览层实例演示
2013/03/14 Javascript
Jquery 切换不同图片示例代码
2013/12/05 Javascript
Extjs根据条件设置表格某行背景色示例
2014/07/23 Javascript
Bootstrap源码解读导航条(7)
2016/12/23 Javascript
详解webpack模块加载器兼打包工具
2018/09/11 Javascript
JavaScript多种滤镜算法实现代码实例
2019/12/10 Javascript
vue3.0+vue-router+element-plus初实践
2020/12/02 Vue.js
SpringBoot+Vue 前后端合并部署的配置方法
2020/12/30 Vue.js
[04:44]显微镜下的DOTA2第二期——你所没有注意到的细节
2014/06/20 DOTA
Swift中的协议(protocol)学习教程
2016/07/08 Python
Python使用回溯法子集树模板解决爬楼梯问题示例
2017/09/08 Python
Python调用adb命令实现对多台设备同时进行reboot的方法
2018/10/15 Python
python实现扫雷小游戏
2020/04/24 Python
Django中ORM找出内容不为空的数据实例
2020/05/20 Python
Python+Xlwings 删除Excel的行和列
2020/12/19 Python
施华洛世奇日本官网:SWAROVSKI日本
2018/05/04 全球购物
阿尔卡特(中国)的面试题目
2014/08/20 面试题
假日旅行社实习自我鉴定
2013/09/24 职场文书
计算机系毕业生推荐信
2013/11/06 职场文书
机电专业毕业生推荐信
2013/11/10 职场文书
劳资专员岗位职责
2013/12/27 职场文书
服装促销活动方案
2014/02/23 职场文书
幼儿园大班毕业教师寄语
2014/04/03 职场文书
《去年的树》教学反思
2014/04/11 职场文书
2014年挂职干部工作总结
2014/12/06 职场文书
2015年创先争优工作总结
2015/05/23 职场文书
新闻稿件写作技巧
2015/07/18 职场文书
2015年大学组织委员个人工作总结
2015/10/23 职场文书
祝福语集锦:送给毕业同学祝福语
2019/11/21 职场文书
Vue Element-ui表单校验规则实现
2021/07/09 Vue.js
JavaWeb Servlet开发注册页面实例
2022/04/11 Java/Android