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 4.2书写安全的脚本
Oct 09 PHP
PHP4实际应用经验篇(9)
Oct 09 PHP
vBulletin HACK----显示话题大小和打开新窗口于论坛索引页
Oct 09 PHP
PHP __autoload函数(自动载入类文件)的使用方法
Feb 04 PHP
php 批量替换html标签的实例代码
Nov 26 PHP
php实现从上传文件创建缩略图的方法
Apr 02 PHP
PHP+Javascript实现在线拍照功能实例
Jul 18 PHP
php使用正则验证中文
Apr 06 PHP
PHP编写简单的App接口
Aug 28 PHP
PHP实现根据密码长度显示安全条
Jul 04 PHP
php curl上传、下载、https登陆实现代码
Jul 23 PHP
php与阿里云短信接口接入操作案例分析
May 27 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程序级守护进程的实现与优化的使用概述
2013/05/02 PHP
PHP实现货币换算的方法
2014/11/29 PHP
php动态绑定变量的用法
2015/06/16 PHP
php解决DOM乱码的方法示例代码
2016/11/20 PHP
PHP简单读取xml文件的方法示例
2017/04/20 PHP
windows下的WAMP环境搭建图文教程(推荐)
2017/07/27 PHP
jQuery live( type, fn ) 委派事件实现
2009/10/11 Javascript
JS小功能(setInterval实现图片效果显示时间)实例代码
2013/11/28 Javascript
IE浏览器IFrame对象内存不释放问题解决方法
2014/08/22 Javascript
jQuery中[attribute^=value]选择器用法实例
2014/12/31 Javascript
jQuery简单实现图片预加载
2015/04/20 Javascript
JavaScript中的splice()方法使用详解
2015/06/09 Javascript
jquery实现TAB选项卡鼠标经过带延迟效果的方法
2015/07/27 Javascript
基于vue.js轮播组件vue-awesome-swiper实现轮播图
2017/03/17 Javascript
详解vue2.0 transition 多个元素嵌套使用过渡
2017/06/19 Javascript
js es6系列教程 - 基于new.target属性与es5改造es6的类语法
2017/09/02 Javascript
javascript 通过键名获取键盘的keyCode方法
2017/12/31 Javascript
vue2.0 如何把子组件的数据传给父组件(推荐)
2018/01/15 Javascript
Element UI 自定义正则表达式验证方法
2018/09/04 Javascript
微信小程序开发之tabbar图标和颜色的实现
2018/10/17 Javascript
可用于监控 mysql Master Slave 状态的python代码
2013/02/10 Python
python数据结构之二叉树的遍历实例
2014/04/29 Python
python 表达式和语句及for、while循环练习实例
2017/07/07 Python
Python+PyQt5实现灭霸响指功能
2020/05/25 Python
解决pytorch多GPU训练保存的模型,在单GPU环境下加载出错问题
2020/06/23 Python
Python之字典添加元素的几种方法
2020/09/30 Python
纯HTML5+CSS3制作生日蛋糕(代码易懂)
2016/11/16 HTML / CSS
幼儿园消防演练方案
2014/02/13 职场文书
基层党员学习党的群众路线教育实践活动心得体会
2014/11/04 职场文书
2015年派出所工作总结
2015/04/24 职场文书
保护校园环境倡议书
2015/04/28 职场文书
爱国主义教育基地观后感
2015/06/18 职场文书
交通安全温馨提示语
2015/07/14 职场文书
2015年计算机教师工作总结
2015/07/22 职场文书
2019奶茶店创业计划书范本!
2019/07/15 职场文书
yolov5返回坐标的方法实例
2022/03/17 Python