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 相关文章推荐
一个用于mysql的数据库抽象层函数库
Oct 09 PHP
PHP中的正规表达式(一)
Oct 09 PHP
php下实现在指定目录搜索指定类型文件的函数
Oct 03 PHP
PHP 向右侧拉菜单实现代码,测试使用中
Nov 03 PHP
PHP不用第三变量交换2个变量的值的解决方法
Jun 02 PHP
php生成图形验证码几种方法小结
Aug 15 PHP
PHP函数eval()介绍和使用示例
Aug 20 PHP
php用户注册时常用的检验函数实例总结
Dec 22 PHP
如何使用PHP对网站验证码进行破解
Sep 17 PHP
详解关于php的xdebug配置(编辑器vscode)
Jan 29 PHP
Laravel 简单实现Ajax滚动加载示例
Oct 22 PHP
thinkphp框架类库扩展操作示例
Nov 26 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函数spl_autoload_register()用法和__autoload()介绍
2012/02/04 PHP
PHP和.net中des加解密的实现方法
2013/02/27 PHP
ThinkPHP2.0读取MSSQL提示Incorrect syntax near the keyword 'AS'的解决方法
2014/06/25 PHP
PHP的数组中提高元素查找与元素去重的效率的技巧解析
2016/03/03 PHP
PHP 返回13位时间戳的实现代码
2016/05/13 PHP
php中各种定义变量的方法小结
2017/10/18 PHP
PHP的图像处理实例小结【文字水印、图片水印、压缩图像等】
2019/12/20 PHP
Yii框架组件的事件机制原理与用法分析
2020/04/07 PHP
JS 页面内容搜索,类似于 Ctrl+F功能的实现代码
2007/08/13 Javascript
js实现的真正的iframe高度自适应(兼容IE,FF,Opera)
2010/03/07 Javascript
Javascript无阻塞加载具体方式
2013/06/28 Javascript
JS判断字符串长度的5个方法(区分中文和英文)
2014/03/18 Javascript
一个简单的jQuery计算器实现了连续计算功能
2014/07/21 Javascript
javascript里使用php代码实例
2014/12/13 Javascript
JavaScript使用setTimeout实现延迟弹出警告框的方法
2015/04/07 Javascript
Vue.js计算属性computed与watch(5)
2016/12/09 Javascript
vue+axios实现登录拦截的实例代码
2017/05/22 Javascript
Vue如何实现组件的源码解析
2017/06/08 Javascript
React Native react-navigation 导航使用详解
2017/12/01 Javascript
JS实现简易换图时钟功能分析
2018/01/04 Javascript
Vue路由守卫及页面登录权限控制的设置方法(两种)
2020/03/31 Javascript
Vue 防止短时间内连续点击后多次触发请求的操作
2020/11/11 Javascript
wxpython实现图书管理系统
2018/03/12 Python
python3获取当前目录的实现方法
2019/07/29 Python
python sqlite的Row对象操作示例
2019/09/11 Python
基于Pytorch SSD模型分析
2020/02/18 Python
webView加载html图片遇到的问题解决
2019/10/08 HTML / CSS
美国时尚女装在线:Missguided
2016/12/03 全球购物
SIXPAD智能健身仪英国官网:革命性的训练装备品牌
2018/09/27 全球购物
宣传策划类求职信范文
2014/01/31 职场文书
QQ空间主人寄语大全
2014/04/12 职场文书
最美孝心少年事迹材料
2014/08/15 职场文书
咖啡店创业计划书范文
2014/09/15 职场文书
2014年团队工作总结
2014/11/24 职场文书
学校重阳节活动总结
2015/03/24 职场文书
您对思维方式了解多少?
2019/12/09 职场文书