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的知识
Nov 17 PHP
Http 1.1 Etag 与 Last-Modified提高php效率
Jan 10 PHP
php 抽象类的简单应用
Sep 06 PHP
php GUID生成函数和类
Mar 10 PHP
ThinkPHP2.0读取MSSQL提示Incorrect syntax near the keyword 'AS'的解决方法
Jun 25 PHP
destoon在360浏览器下出现用户被强行注销的解决方法
Jun 26 PHP
推荐一款MAC OS X 下php集成开发环境mamp
Nov 08 PHP
PHP扩展开发教程(总结)
Nov 04 PHP
thinkphp框架实现删除和批量删除
Jun 29 PHP
PHP-FPM 设置多pool及配置文件重写操作示例
Oct 02 PHP
Laravel 模型使用软删除-左连接查询-表起别名示例
Oct 24 PHP
PHP中类与对象功能、用法实例解读
Mar 27 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
2009/06/29 PHP
php中实现记住密码自动登录的代码
2011/03/02 PHP
php检测mysql表是否存在的方法小结
2017/07/20 PHP
javascript 日期时间 转换的方法
2013/02/21 Javascript
js验证电话号码与手机支持+86的正则表达式
2014/01/23 Javascript
jQuery插件实现带圆点的焦点图片轮播切换
2016/01/18 Javascript
javascript表单处理具体实现代码(表单、链接、按钮)
2016/05/07 Javascript
动态的9*9乘法表效果的实现代码
2016/05/16 Javascript
一种Javascript解释ajax返回的json的好方法(推荐)
2016/06/02 Javascript
JavaScript ES6中CLASS的使用详解
2016/11/22 Javascript
jQuery Validate表单验证插件的基本使用方法及功能拓展
2017/01/04 Javascript
vue.js指令v-model使用方法
2017/03/20 Javascript
深入理解react-router@4.0 使用和源码解析
2017/05/23 Javascript
js CSS3实现卡牌旋转切换效果
2017/07/04 Javascript
Angular中ng-repeat与ul li的多层嵌套重复问题
2017/07/24 Javascript
JavaScript继承定义与用法实践分析
2018/05/28 Javascript
简述vue状态管理模式之vuex
2018/08/29 Javascript
Vue v-model组件封装(类似弹窗组件)
2020/01/08 Javascript
vue-router路由懒加载及实现的3种方式
2021/02/28 Vue.js
python 生成器协程运算实例
2017/09/04 Python
python绘制铅球的运行轨迹代码分享
2017/11/14 Python
Python matplotlib画图实例之绘制拥有彩条的图表
2017/12/28 Python
Python流程控制常用工具详解
2020/02/24 Python
Python中logger日志模块详解
2020/08/04 Python
HTML5新增加的功能详解
2016/09/05 HTML / CSS
中国综合性网上购物商城:当当(网上卖书起家)
2016/11/16 全球购物
美国一家主打母婴用品的团购网站:zulily
2017/09/19 全球购物
婴儿鞋,独特的婴儿服装和配件:Zutano
2018/11/03 全球购物
Speedo速比涛德国官方网站:世界领先的泳装品牌
2019/08/26 全球购物
品管员岗位职责
2013/11/10 职场文书
人事档案接收函
2014/01/12 职场文书
骨干教师培训感言
2014/01/16 职场文书
家长会欢迎标语
2014/06/24 职场文书
2014年办公室主任工作总结
2014/11/12 职场文书
2020年元旦晚会策划书模板
2019/12/30 职场文书
Nginx使用Lua模块实现WAF的原理解析
2021/09/04 Servers