php函数重载的替代方法--伪重载详解


Posted in PHP onMay 08, 2015

函数重载的替代方法-伪重载,下面看一个具体的实例代码。

<? php
//函数重载的替代方法-伪重载
//
//确实,在PHP中没有函数重载这个概念,让很多时候我们无法进行一些处理,甚至有时候不得不在函数后面定义好N个参数
//在看到了func_get_arg,func_get_args,func_num_args,这三个函数的时候,你们是不是想起了什么?

function testOne ( $a ) {
 echo (' 一个参数就这样 ');
}

function testTwo ( $a ,  $b ){
 echo (' 两个参数的就这样 ');
}

function testThree ($a,  $b,  $c ) {
 echo (' 黑黑,这是三个参数的 ');
}

function test () {
 $argNum  =  func_num_args ();
  // 这一段其实可以用 $_arg = func_get_args() 来获得所有的参数,只是要用数组而已,不方便我下面的表达,呵呵
 for ( $i  =  0 ; $i  <  $argNum ; $i ++ ) {
  $_arg_ { $i } =  func_get_arg ( $i );
 }
 switch ( $argNum ) {
  case  1 :
   testOne( $_arg_1 );
   break ;
  case  2 :
   testTwo( $_arg_1,  $_arg_2 );
   break ;
  case  3 :
   testThree( $_arg_1,  $_arg_2,  $_arg_3 );
   break ;
  default :
   echo ( ' 这是没有参数的情况 ' );
   break ;
 }
}
test();
echo ( ' ' );
test( 1 );
echo ( ' ' );
test( 1 , 2 );
echo ( ' ' );
test( 1 , 2 , 3 );

// 这些只是在函数中的运用,其实最主要的还是在类中的运用
//如果这些用到类里面我就不需要担心构造函数是否有几个参数了,不是吗?

class test {
 var  $a  =  0 ;
 var  $b  =  0 ;

 function test () {
  $argNum  =  func_num_args ();
  $_arg  =  func_get_args ();
  switch ($argNum ) {
   case  1 :
   $this -> test1( $_arg [ 0 ] );
   break ;
  case  2 :
   $this -> test2( $_arg [ 0 ] ,  $_arg [ 1 ]);
   break ;
  default :
   $this -> a = 0 ;
   $this -> b = 1 ;
   break ;
  }
 }

 function test1 ($a) {
  $this -> a =  $a ;
 }

 function test2 ($a,  $b) {
  $this -> a =  $a ;
  $this -> b =  $b ;
 }
}
?>

以上所述就是本文的全部内容了,希望大家能够喜欢。

PHP 相关文章推荐
在任意字符集下正常显示网页的方法二(续)
Apr 01 PHP
IIS7.X配置PHP运行环境小结
Jun 09 PHP
PHP-CGI进程CPU 100% 与 file_get_contents 函数的关系分析
Aug 15 PHP
PHP支持多种格式图片上传(支持jpg、png、gif)
Nov 03 PHP
PHP获取网页标题的3种实现方法代码实例
Apr 11 PHP
PHP的mysqli_query参数MYSQLI_STORE_RESULT和MYSQLI_USE_RESULT的区别
Sep 29 PHP
jQuery+PHP实现的掷色子抽奖游戏实例
Jan 04 PHP
php读取文件内容的方法汇总
Jan 24 PHP
在Mac OS上自行编译安装Apache服务器和PHP解释器
Dec 24 PHP
thinkphp制作404跳转页的简单实现方法
Sep 22 PHP
PHP中常用的魔术方法
Apr 28 PHP
PHP实现笛卡尔积算法的实例讲解
Dec 22 PHP
PHP文件读取功能的应用实例
May 08 #PHP
php实现的IMEI限制的短信验证码发送类
May 05 #PHP
php自定义hash函数实例
May 05 #PHP
php结合安卓客户端实现查询交互实例
May 05 #PHP
php为字符串前后添加指定数量字符的方法
May 04 #PHP
支持中文、字母、数字的PHP验证码
May 04 #PHP
php替换字符串中间字符为省略号的方法
May 04 #PHP
You might like
php GD绘制24小时柱状图
2008/06/28 PHP
解析php时间戳与日期的转换
2013/06/06 PHP
PHP判断指定时间段的2个方法
2014/03/14 PHP
PHP生成等比缩略图类和自定义函数分享
2014/06/25 PHP
php实现简单爬虫的开发
2016/03/28 PHP
PHP优化之批量操作MySQL实例分析
2020/04/23 PHP
项目实践之javascript技巧
2007/12/06 Javascript
30分钟就入门的正则表达式基础教程
2013/02/25 Javascript
JQuery操作单选按钮以及复选按钮示例
2013/09/23 Javascript
jQuery不使用插件及swf实现无刷新文件上传
2014/12/08 Javascript
使用JS获取当前地理位置方法汇总
2014/12/18 Javascript
js用拖动滑块来控制图片大小的方法
2015/02/27 Javascript
chrome不支持form.submit的解决方案
2015/04/28 Javascript
JavaScript运动减速效果实例分析
2015/08/04 Javascript
js判断手机访问或者PC的几个例子(常用于手机跳转)
2015/12/15 Javascript
Bootstrap按钮组实例详解
2017/07/03 Javascript
BootStrap Validator 根据条件在JS中添加或移除校验操作
2017/10/12 Javascript
Vue学习之组件用法实例详解
2020/01/06 Javascript
基于vue-cli3+typescript的tsx开发模板搭建过程分享
2020/02/28 Javascript
[10:21]2018DOTA2国际邀请赛寻真——Winstrike
2018/08/11 DOTA
python图片指定区域替换img.paste函数的使用
2020/04/09 Python
浅析Python迭代器的高级用法
2020/07/16 Python
PyTorch 中的傅里叶卷积实现示例
2020/12/11 Python
微软俄罗斯官方网站:Microsoft俄罗斯
2016/09/18 全球购物
TIME时代杂志台湾总代理:台时亚洲
2018/10/22 全球购物
环境科学专业研究生求职信
2013/10/02 职场文书
优秀毕业生推荐信
2013/11/02 职场文书
母亲追悼会答谢词
2014/01/27 职场文书
讲文明树新风演讲稿
2014/05/12 职场文书
医院深入开展党的群众路线教育实践活动实施方案
2014/08/27 职场文书
地道战观后感2000字
2015/06/04 职场文书
经营场所使用证明
2015/06/19 职场文书
Python 流媒体播放器的实现(基于VLC)
2021/04/28 Python
golang连接MySQl使用sqlx库
2022/04/14 Golang
SQL语句中EXISTS的详细用法大全
2022/06/25 MySQL
js 实现验证码输入框示例详解
2022/09/23 Javascript