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学习教程之第2天
Jun 15 PHP
一步一步学习PHP(4) php 函数 补充2
Feb 15 PHP
php开启安全模式后禁用的函数集合
Jun 26 PHP
php中echo()和print()、require()和include()等易混淆函数的区别
Feb 22 PHP
淘宝ip地址查询类分享(利用淘宝ip库)
Jan 07 PHP
PHP中常用的转义函数
Feb 28 PHP
简单谈谈php中ob_flush和flush的区别
Nov 27 PHP
PHP使用header()输出图片缓存实例
Dec 09 PHP
PHP中include/require/include_once/require_once使用心得
Aug 28 PHP
PHP数据库操作三:redis用法分析
Aug 16 PHP
php实现支付宝当面付(扫码支付)功能
May 30 PHP
PHP文件上传小程序 适合初学者学习!
May 23 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
基于文本的访客签到簿
2006/10/09 PHP
PHP 数据结构 算法描述 冒泡排序 bubble sort
2011/07/10 PHP
ThinkPHP 防止表单重复提交的方法
2011/08/08 PHP
php数据访问之增删改查操作
2016/05/09 PHP
php版微信发红包接口用法示例
2016/09/23 PHP
Zend Framework校验器Zend_Validate用法详解
2016/12/09 PHP
PHP无限极分类函数的实现方法详解
2017/04/15 PHP
laravel实现简单用户权限的示例代码
2019/05/28 PHP
Thinkphp5.0框架视图view的模板布局用法分析
2019/10/12 PHP
js类 from qq
2006/11/13 Javascript
jQuery 1.3 和 Validation 验证插件1.5.1
2009/07/09 Javascript
用js实现in_array的方法
2013/11/05 Javascript
iframe父页面获取子页面参数的方法
2014/02/21 Javascript
js操作数组函数实例小结
2015/12/10 Javascript
JQuery的Pager分页器实现代码
2016/05/03 Javascript
javascript创建对象的几种模式介绍
2016/05/06 Javascript
基于jquery实现的银行卡号每隔4位自动插入空格的实现代码
2016/11/22 Javascript
对angular 实时更新模板视图的方法$apply详解
2018/10/09 Javascript
基于JS实现web端录音与播放功能
2019/04/17 Javascript
layui(1.0.9)文件上传upload,前后端的实例代码
2019/09/26 Javascript
vue路由切换之淡入淡出的简单实现
2019/10/31 Javascript
React Ant Design树形表格的复杂增删改操作
2020/11/02 Javascript
[52:20]VP vs VG Supermajor小组赛 B组胜者组决赛 BO3 第一场 6.2
2018/06/03 DOTA
Python实现的使用telnet登陆聊天室实例
2015/06/17 Python
使用Python实现BT种子和磁力链接的相互转换
2015/11/09 Python
Python抽象和自定义类定义与用法示例
2018/08/23 Python
利用python实现简易版的贪吃蛇游戏(面向python小白)
2018/12/30 Python
python导入pandas具体步骤方法
2019/06/23 Python
python递归调用中的坑:打印有值, 返回却None
2020/03/16 Python
Python替换NumPy数组中大于某个值的所有元素实例
2020/06/08 Python
python给视频添加背景音乐并改变音量的具体方法
2020/07/19 Python
Aerosoles爱柔仕官网:美国舒软女鞋品牌
2017/07/17 全球购物
介绍一下HTTP、HTTPS和SSL
2012/12/16 面试题
加入学生会演讲稿
2014/04/24 职场文书
环保建议书500字
2014/05/14 职场文书
2015年教师节演讲稿范文
2015/03/19 职场文书