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 相关文章推荐
自动把纯文本转换成Web页面的php代码
Aug 27 PHP
php 无限分类的树类代码
Dec 03 PHP
php删除数组元素示例分享
Feb 17 PHP
php中in_array函数用法探究
Nov 25 PHP
PHP实现远程下载文件到本地
May 17 PHP
PHP按指定键值对二维数组进行排序的方法
Dec 22 PHP
Yii数据模型中rules类验证器用法分析
Jul 15 PHP
Netbeans 8.2与PHP相关的新特性介绍
Oct 08 PHP
PHP利用Socket获取网站的SSL证书与公钥
Jun 18 PHP
thinkphp 抓取网站的内容并且保存到本地的实例详解
Aug 25 PHP
PHP如何实现订单的延时处理详解
Dec 30 PHP
PHP的PDO事务与自动提交
Jan 24 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
星际争霸任务指南——神族
2020/03/04 星际争霸
用PHP实现递归循环每一个目录
2010/08/08 PHP
PHP图片处理类 phpThumb参数用法介绍
2012/03/11 PHP
php发送get、post请求的6种方法简明总结
2014/07/08 PHP
php中异常处理方法小结
2015/01/09 PHP
ThinkPHP中图片按比例切割的代码实例
2019/03/08 PHP
顶部缓冲下拉菜单导航特效的JS代码
2013/08/27 Javascript
利用CSS、JavaScript及Ajax实现高效的图片预加载
2013/10/16 Javascript
Windows8下搭建Node.js开发环境教程
2014/09/03 Javascript
javascript实现图片延迟加载方法汇总(三种方法)
2015/08/27 Javascript
Cookies 和 Session的详解及区别
2017/04/21 Javascript
微信小程序模板和模块化用法实例分析
2017/11/28 Javascript
如何让微信小程序页面之间的通信不再变困难
2019/06/03 Javascript
vue单页应用的内存泄露定位和修复问题小结
2019/08/02 Javascript
Vue移动端实现图片上传及超过1M压缩上传
2019/12/23 Javascript
js找出5个数中最大的一个数和倒数第二大的数实现方法示例小结
2020/03/04 Javascript
three.js欧拉角和四元数的使用方法
2020/07/26 Javascript
微信小程序实现文件预览
2020/10/22 Javascript
[02:39]DOTA2英雄基础教程 极限穿梭编织者
2013/12/05 DOTA
wxpython中利用线程防止假死的实现方法
2014/08/11 Python
Python操作MongoDB详解及实例
2017/05/18 Python
Python字典对象实现原理详解
2019/07/01 Python
springboot配置文件抽离 git管理统 配置中心详解
2019/09/02 Python
Python3.9 beta2版本发布了,看看这7个新的PEP都是什么
2020/06/10 Python
python设置中文界面实例方法
2020/10/27 Python
Python爬虫进阶之爬取某视频并下载的实现
2020/12/08 Python
tensorflow2.0教程之Keras快速入门
2021/02/20 Python
html5 Canvas实现图片旋转的示例
2018/01/15 HTML / CSS
美国专注于健康商品的网站:eVitamins
2017/01/23 全球购物
土木工程应届生求职信
2013/10/31 职场文书
精神文明建设先进工作者事迹材料
2014/05/02 职场文书
整脏治乱工作简报
2015/07/21 职场文书
2015年法律事务部工作总结
2015/07/27 职场文书
五年级作文之学校的四季
2019/12/05 职场文书
Golang数据类型和相互转换
2022/04/12 Golang
Android 界面一键变灰 深色主题工具类
2022/04/28 Java/Android