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 21 PHP
linux下删除7天前日志的代码(php+shell)
Jan 02 PHP
PHP中防止SQL注入实现代码
Feb 19 PHP
基于PHPExcel的常用方法总结
Jun 13 PHP
php过滤XSS攻击的函数
Nov 12 PHP
PHP+shell实现多线程的方法
Jul 01 PHP
PHP响应post请求上传文件的方法
Dec 17 PHP
详解WordPress中创建和添加过滤器的相关PHP函数
Dec 29 PHP
PHP微信开发之根据用户回复关键词\位置返回附近信息
Jun 24 PHP
浅谈PHP的exec()函数无返回值排查方法(必看)
Mar 31 PHP
PHP删除字符串中非字母数字字符方法总结
Jan 20 PHP
PHP面向对象程序设计内置标准类,普通数据类型转为对象类型示例
Jun 12 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
造势之举?韩国总统候选人发布《星际争霸》地图
2017/04/22 星际争霸
php 向访客和爬虫显示不同的内容
2009/11/09 PHP
关于php fread()使用技巧
2010/01/22 PHP
非常重要的php正则表达式详解
2016/01/04 PHP
PHP实现的抓取小说网站内容功能示例
2019/06/27 PHP
laravel 修改.htaccess文件 重定向public的解决方法
2019/10/12 PHP
从数据结构分析看:用for each...in 比 for...in 要快些
2013/04/17 Javascript
js动态修改整个页面样式达到换肤效果
2014/05/23 Javascript
引用其它js时如何同时处理多个window.onload事件
2014/09/02 Javascript
javascript的函数作用域
2014/11/12 Javascript
JavaScript前补零操作实例
2015/03/11 Javascript
js实现类似jquery里animate动画效果的方法
2015/04/10 Javascript
微信小程序获取手机网络状态的方法【附源码下载】
2017/12/08 Javascript
vue中阻止click事件冒泡,防止触发另一个事件的方法
2018/02/08 Javascript
JavaScript实现微信红包算法及问题解决方法
2018/04/26 Javascript
JS实现十分钟倒计时代码实例
2018/10/18 Javascript
解决layui数据表格排序图标被超出的表头挤出去的问题
2019/09/19 Javascript
解决layui弹出层layer的area过大被遮挡的问题
2019/09/21 Javascript
bootstrap-closable-tab可实现关闭的tab标签页插件
2020/08/09 Javascript
python 编程之twisted详解及简单实例
2017/01/28 Python
python中实现将多个print输出合成一个数组
2018/04/19 Python
python自动截取需要区域,进行图像识别的方法
2018/05/17 Python
详解PyCharm+QTDesigner+PyUIC使用教程
2019/06/13 Python
python函数的万能参数传参详解
2019/07/26 Python
python类的实例化问题解决
2019/08/31 Python
构建高效的python requests长连接池详解
2020/05/02 Python
CSS3 选择器 伪类选择器介绍
2012/01/21 HTML / CSS
俄罗斯在线水暖商店:Perfecto.ru
2019/10/25 全球购物
家长给老师的道歉信
2014/01/13 职场文书
本科毕业生应聘自荐信范文
2014/06/26 职场文书
初中优秀教师事迹材料
2014/08/18 职场文书
2015年老干部工作总结
2015/04/23 职场文书
2015小学毕业班工作总结
2015/07/21 职场文书
vue完美实现el-table列宽自适应
2021/05/08 Vue.js
Python数据可视化之基于pyecharts实现的地理图表的绘制
2021/06/10 Python
postgresql 删除重复数据案例详解
2021/08/02 PostgreSQL