欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

PHP中的java模式重载

程序员文章站 2024-02-15 16:14:52
...
PHP中的java方式重载
有的时候,能够调用可变参数的同一个方法会非常方便。PHP能够定义带默认值的可选参数使这一做法成为可能。品牌网站建设:http://www.ucantech.com/

可以在php5中用__call()实现这种方法重载。下面来看一个示例。假设要用重载行为,那么要将其放到抽象父类中。

Php代码

abstract class OverloadableObject{
function __call($name, $args){
$method = $name."_".count($args);
if(!method_exists($this,$method)){
throw new Exception("Call to undefined method".get_class($this)."::$method");
}
return call_user_func_array(array($this,$method),$args);

}
}


这个类方法的主要行为都在
Php代码

$method = $name."_".count($args);

显示一行代码中定义了。如果调用未定义方法,__call()方法会生成一个新方法,其名称由原始方法和参数个数构成,用下划线分开。然后用新生成的方法名调用改方法,将原来的参数也一起传递过去。

现在,如果要使用一个名为multiply的重载方法,可以使用两个或三个参数来调用它,并在每种情况下进行相应操作,可以分别用两个方法:multiply_2和multiply_3

Php代码

class Multiplier extends OverloadableObject{
function multiply_2($one,$two){
return $one*$two;
}
function multiply_3($one,$two,$three){
return $one*$two*$three;
}
}

为了使用这段代码,只调用带有两个或三个参数的multiply方法。

$multi = new Multiplier;

echo $multi->multiply(5,6)."\n";

echo $multi->multiply(5,6,7)."\n"; (fblww-0112)
PHP中的java模式重载

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。

相关文章

相关视频