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函数
May 31 PHP
php设计模式 Mediator (中介者模式)
Jun 26 PHP
使用php实现下载生成某链接快捷方式的解决方法
May 07 PHP
php批量上传的实现代码
Jun 09 PHP
php解决约瑟夫环示例
Apr 09 PHP
php中in_array函数用法分析
Nov 15 PHP
PHP实现适用于自定义的验证码类
Jun 15 PHP
基于php实现的php代码加密解密类完整实例
Oct 12 PHP
PHP那些琐碎的知识点(整理)
May 20 PHP
PHP查询分页的实现代码
Jun 09 PHP
PHP读取并输出XML文件数据的简单实现方法
Dec 22 PHP
Laravel使用swoole实现websocket主动消息推送的方法介绍
Oct 20 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中数字0和空值的区别分析
2014/06/05 PHP
两种php去除二维数组的重复项方法
2015/11/04 PHP
Laravel6.18.19如何优雅的切换发件账户
2020/06/14 PHP
PHP var关键字相关原理及使用实例解析
2020/07/11 PHP
JS控件autocomplete 0.11演示及下载 1月5日已更新
2007/01/09 Javascript
使用JavaScript开发IE浏览器本地插件实例
2015/02/18 Javascript
详解AngularJS中自定义指令的使用
2015/06/17 Javascript
基于jQuery实现Div窗口震动特效代码-代码简单
2015/08/28 Javascript
JavaScript的设计模式经典之建造者模式
2016/02/24 Javascript
如何让一个json文件显示在表格里【实现代码】
2016/05/09 Javascript
浅谈JS使用[ ]来访问对象属性
2016/09/21 Javascript
JS实现基于拖拽改变物体大小的方法
2018/01/23 Javascript
vue数据传递--我有特殊的实现技巧
2018/03/20 Javascript
Vue Router的手写实现方法实现
2020/03/02 Javascript
js实现烟花特效
2020/03/02 Javascript
如何在面试中手写出javascript节流和防抖函数
2020/10/22 Javascript
[29:16]完美世界DOTA2联赛决赛日 Inki vs LBZS 第三场 11.08
2020/11/10 DOTA
python实现红包裂变算法
2016/02/16 Python
Python基础教程之利用期物处理并发
2018/03/29 Python
Python之批量创建文件的实例讲解
2018/05/10 Python
Python学习笔记之读取文件、OS模块、异常处理、with as语法示例
2019/06/04 Python
python yield关键词案例测试
2019/10/15 Python
Python爬虫程序架构和运行流程原理解析
2020/03/09 Python
python随机模块random的22种函数(小结)
2020/05/15 Python
matplotlib grid()设置网格线外观的实现
2021/02/22 Python
AmazeUI底部导航栏与分享按钮的示例代码
2020/08/18 HTML / CSS
俄罗斯最大的在线珠宝大卖场:Nebo
2019/12/08 全球购物
程序运行正确, 但退出时却"core dump"了,怎么回事
2014/02/19 面试题
什么是GWT的Entry Point
2013/08/16 面试题
毕业生造价工程师求职信
2013/10/17 职场文书
新教师培训心得体会
2014/09/02 职场文书
不服从上级领导安排的检讨书
2014/09/14 职场文书
秦兵马俑导游词
2015/02/02 职场文书
2015年工商所工作总结
2015/05/21 职场文书
七年级作文之《我和我的祖国》观后感作文
2019/10/18 职场文书
Python django中如何使用restful框架
2021/06/23 Python