PHP中的java方式重载
来源:互联网 发布:360云盘mac版 编辑:程序博客网 时间:2024/04/30 20:49
有的时候,能够调用可变参数的同一个方法会非常方便。PHP能够定义带默认值的可选参数使这一做法成为可能。
可以在php5中用__call()实现这种方法重载。下面来看一个示例。假设要用重载行为,那么要将其放到抽象父类中。
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); }}
这个类方法的主要行为都在
$method = $name."_".count($args);显示一行代码中定义了。如果调用未定义方法,__call()方法会生成一个新方法,其名称由原始方法和参数个数构成,用下划线分开。然后用新生成的方法名调用改方法,将原来的参数也一起传递过去。
现在,如果要使用一个名为multiply的重载方法,可以使用两个或三个参数来调用它,并在每种情况下进行相应操作,可以分别用两个方法:multiply_2和multiply_3
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";
- PHP中的java方式重载
- PHP中的重载
- php中的重载
- PHP和JAVA中的重载(overload)和覆盖(override)
- 05-php中的方法重载
- 解决php中的重载问题
- java中的方法重载
- java中的重载
- java中的重载
- Java中的重载
- java中的重载
- java中的方法重载
- Java中的重写 重载
- 十、java中的重载
- java中的重载方法
- java中的重载方法
- Java中的方法重载
- 方法重载- Java vs PHP
- 有关Android SQLite编程的一些知识
- 解决/usr/bin/ld: cannot find XXX
- 常用日期转换参数
- Scripting.FileSystemObject 文件操作
- 给iframe传参数
- PHP中的java方式重载
- Exists,Datediff,Newid,
- 30岁以后程序员可以选择的三条路
- PHP 实现多服务器共享 SESSION 数据
- 删除重复值
- 如何让两个<div>在一个<div>里面并排
- STL中map用法详解
- 使用MFC::CArchive
- MSSQL Split表字段