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数组实现无限分类,不使用数据库,不使用递归.
Dec 09 PHP
PHP教程之PHP中shell脚本的使用方法分享
Feb 23 PHP
php使HTML标签自动补全闭合函数代码
Oct 04 PHP
ThinkPHP单字母函数(快捷方法)使用总结
Jul 23 PHP
php生成随机颜色的方法
Nov 13 PHP
round robin权重轮循算法php实现代码
May 28 PHP
PHP页面输出时js设置input框的选中值
Sep 30 PHP
PHP foreach遍历多维数组实现方式
Nov 16 PHP
Centos 6.5下PHP 5.3安装ffmpeg扩展的步骤详解
Mar 02 PHP
php 与 nginx 的处理方式及nginx与php-fpm通信的两种方式
Sep 28 PHP
PHP cookie,session的使用与用户自动登录功能实现方法分析
Jun 05 PHP
PHP中散列密码的安全性分析
Jul 26 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/12/06 PHP
作为PHP程序员应该了解MongoDB的五件事
2013/06/03 PHP
Gambit vs ForZe BO3 第二场 2.13
2021/03/10 DOTA
ext checkboxgroup 回填数据解决
2009/08/21 Javascript
jQuery选择没有colspan属性的td的代码
2010/07/06 Javascript
理解Javascript_01_理解内存分配原理分析
2010/10/11 Javascript
jquery trigger伪造a标签的click事件取代window.open方法
2014/06/23 Javascript
论Bootstrap3和Foundation5网格系统的异同
2016/05/16 Javascript
jQuery实现智能判断固定导航条或侧边栏的方法
2016/09/04 Javascript
jQuery实现的放大镜效果示例
2016/09/13 Javascript
JavaScript 最佳实践:帮你提升代码质量
2016/12/03 Javascript
JS移动端/H5同时选择多张图片上传并使用canvas压缩图片
2017/06/20 Javascript
js实现微信/QQ直接跳转到支付宝APP打开口令领红包功能
2018/01/09 Javascript
JS实现马赛克图片效果完整示例
2019/04/13 Javascript
JS数组的高级使用方法示例小结
2020/03/14 Javascript
Python 实现 贪吃蛇大作战 代码分享
2016/09/07 Python
python使用matplotlib绘制柱状图教程
2017/02/08 Python
Python中property属性实例解析
2018/02/10 Python
TensorFlow实现模型评估
2018/09/07 Python
Python面向对象程序设计构造函数和析构函数用法分析
2019/04/12 Python
python实现的自动发送消息功能详解
2019/08/15 Python
Python装饰器如何实现修复过程解析
2020/09/05 Python
详解python的super()的作用和原理
2020/10/29 Python
标签和贴纸印刷:Lightning Labels
2018/03/22 全球购物
FitFlop美国官网:英国符合人体工学的鞋类品牌
2018/10/05 全球购物
说出数据连接池的工作机制是什么?
2013/04/19 面试题
手术室护士自我鉴定
2013/10/14 职场文书
资产评估专业学生的自我鉴定
2013/11/14 职场文书
小学教师评语大全
2014/04/23 职场文书
2014年师德承诺书
2014/05/23 职场文书
体育口号大全
2014/06/18 职场文书
领导班子四风对照检查材料
2014/09/23 职场文书
2019经典广告词集锦!
2019/07/02 职场文书
试用1103暨1103、1101同门大比武 [ DAIWEI ]
2022/04/05 无线电
MYSQL常用函数介绍
2022/05/05 MySQL
阿里云服务器(windows)手动部署FTP站点详细教程
2022/08/05 Servers