有关PHP重载
- PHP类的函数并不能完成重载
- 原因:希望充分利用参数的判断,完成不同的逻辑动作。
但可以利用__CALL函数,完成重载的效果。
示例代码:
class A{
function __call($name, $arguments)
{
if($name=="print"){
if(gettype($arguments[0])=='integer'){
$this->printInt($arguments[0]);
}
elseif(gettype($arguments[0]=='string')){
$this->printString($arguments[0]);
}
}
}
private function printInt($m){
echo "this is int ",$m,PHP_EOL;
}
private function printString($s){
echo "this is string",$s,PHP_EOL;
}
}
$h=new A();
$h->print(12);
$h->print("12");