PHP实现重载的常用方法实例详解
php  /  管理员 发布于 7年前   251
本文实例讲述了PHP实现重载的常用方法。分享给大家供大家参考,具体如下: php是弱类型语言,并没有像JAVA这种强类型语言一样有重载。 重载一般来说就是拥有相同的函数名或方法名,但是参数列表却不同(包括参数个数和参数类型) 从这个定义来说,php是没有重载的,因为php不允许存在相同的函数名。 但是没有并不意味着不能实现。 php有四种机制可以实现重载:(下面用java进行对比) 1. 弱类型,无需定义变量类型 先举一个JAVA重载的例子: 上面的代码如果用php语言实现: 2. 可选参数,允许变量设置默认值 JAVA重载例子: 用php可选参数特性实现: 可以看到同样的功能,但是php这种弱类型语言实现起来更简单 3. 可变参数 主要用到以下两个函数: 具体实现方式: 4. 使用魔术方法 __call() 在对象中调用一个不可访问的方法时, $name参数是要调用的方法名称 $argument参数是被调用方法的参数数组 具体实现方式类似上面的第三要点: 更多关于PHP相关内容感兴趣的读者可查看本站专题:《php面向对象程序设计入门教程》、《PHP数组(Array)操作技巧大全》、《PHP基本语法入门教程》、《PHP运算与运算符用法总结》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》 希望本文所述对大家PHP程序设计有所帮助。class demo{ public static void main (String[] args) { sum(1,1);//2 sum(1,1.5);//2.5 sum(1.5,1.5);//3.0 } public static void sum(int var1,int var2){ System.out.println(var1+var2); } public static void sum(int var1,double var2){ System.out.println(var1+var2); } public static void sum(double var1,double var2){ System.out.println(var1+var2); }}
class demo{ public static void main (String[] args) { sum(1,2);//3 sum(1,2,3);//6 } public static void sum(int var1,int var2){ System.out.println(var1+var2); } public static void sum(int var1,int var2,int var3){ System.out.println(var1+var2+var3); }}
func_num_args()
返回函数的参数个数func_get_args()
返回一个包含函数参数列表的数组method2($args[0],$args[1]); break; case 3: $this->method3($args[0],$args[1],$args[2]); break; } } private function method2($var1,$var2){ #code... } private function method3($var1,$var2,$var3){ #code... }}//调用$obj = new demo();$obj->method('var1','var2');$obj->method('var1','var2','var3');//看起来似乎通过一个接口调用//但其实内部已经调用了各自定义的方法?>
public mixed __call ( string $name , array $arguments )
__call()
会被自动调用method2($args[0],$args[1]); break; case 3: $this->method3($args[0],$args[1],$args[2]); break; } } } private function method2($var1,$var2){ #code... } private function method3($var1,$var2,$var3){ #code... }}//调用$obj = new demo();$obj->method("var1","var2");$obj->method("var1","var2","var3");?>
您可能感兴趣的文章:
122 在
学历:一种延缓就业设计,生活需求下的权衡之选中评论 工作几年后,报名考研了,到现在还没认真学习备考,迷茫中。作为一名北漂互联网打工人..123 在
Clash for Windows作者删库跑路了,github已404中评论 按理说只要你在国内,所有的流量进出都在监控范围内,不管你怎么隐藏也没用,想搞你分..原梓番博客 在
在Laravel框架中使用模型Model分表最简单的方法中评论 好久好久都没看友情链接申请了,今天刚看,已经添加。..博主 在
佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 @1111老铁这个不行了,可以看看近期评论的其他文章..1111 在
佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 网站不能打开,博主百忙中能否发个APP下载链接,佛跳墙或极光..
Copyright·© 2019 侯体宗版权所有·
粤ICP备20027696号