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 相关文章推荐
介绍php设计模式中的工厂模式
Jun 12 PHP
Apache 配置详解(最好的APACHE配置教程)
Jul 04 PHP
用Php编写注册后Email激活验证的实例代码
Mar 11 PHP
thinkphp实现图片上传功能分享
Mar 04 PHP
可以保证单词完整性的PHP英文字符串截取代码分享
Jul 15 PHP
php抽奖概率算法(刮刮卡,大转盘)
Apr 17 PHP
thinkphp中的url跳转用法分析
Jul 12 PHP
thinkPHP5使用Rabc实现权限管理
Aug 28 PHP
Thinkphp5.0框架视图view的模板布局用法分析
Oct 12 PHP
laravel 数据验证规则详解
Oct 23 PHP
Thinkphp 框架扩展之Widget扩展实现方法分析
Apr 23 PHP
PHP底层运行机制与工作原理详解
Jul 31 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
mysql_fetch_assoc和mysql_fetch_row的功能加起来就是mysql_fetch_array
2007/01/15 PHP
PHP生成不重复标识符的方法
2014/11/21 PHP
java微信开发之上传下载多媒体文件
2016/06/24 PHP
Linux平台PHP5.4设置FPM线程数量的方法
2016/11/09 PHP
PHP依赖注入原理与用法分析
2018/08/21 PHP
Prototype最新版(1.5 rc2)使用指南(1)
2007/01/10 Javascript
js 实现在离开页面时提醒未保存的信息(减少用户重复操作)
2013/01/16 Javascript
JS版元素周期表实现方法
2015/08/05 Javascript
理解和运用JavaScript的闭包机制
2015/08/13 Javascript
js+css实现回到顶部按钮(back to top)
2016/03/02 Javascript
Ajax 加载数据 练习代码
2017/01/05 Javascript
nodeJS服务器的创建和重新启动的实现方法
2018/05/12 NodeJs
JavaScript中引用vs复制示例详析
2018/12/06 Javascript
JS实现数组去重及数组内对象去重功能示例
2019/02/02 Javascript
JS实现无限轮播无倒退效果
2020/09/21 Javascript
Python异常学习笔记
2015/02/03 Python
深入Python函数编程的一些特性
2015/04/13 Python
浅谈python中copy和deepcopy中的区别
2017/10/23 Python
解决win64 Python下安装PIL出错问题(图解)
2018/09/03 Python
Python3.6简单的操作Mysql数据库的三个实例
2018/10/17 Python
简单了解Python matplotlib线的属性
2019/06/29 Python
Python异步编程之协程任务的调度操作实例分析
2020/02/01 Python
Python 实现3种回归模型(Linear Regression,Lasso,Ridge)的示例
2020/10/15 Python
Sam’s Club山姆会员商店:沃尔玛旗下高端会员制商店
2017/01/16 全球购物
Stührling手表官方网站:男女高品质时尚手表的领先零售商
2021/01/07 全球购物
用Python写一个for循环的例子
2016/07/19 面试题
医学生个人求职信范文
2013/09/24 职场文书
《再见了,亲人》教学反思
2014/02/26 职场文书
多媒体专业自我鉴定
2014/02/28 职场文书
外贸会计专业自荐信
2014/06/22 职场文书
公司领导班子对照检查材料
2014/09/24 职场文书
工会2014法制宣传日活动总结
2014/11/01 职场文书
肖申克救赎观后感
2015/06/02 职场文书
党组织结对共建协议书
2016/03/23 职场文书
《吸血鬼幸存者》新内容发布 追加多个全新模式
2022/04/07 其他游戏
Python+pyaudio实现音频控制示例详解
2022/07/23 Python