php的方法重载用的多么,php 5 方法的重载

//php 5 中可以使用 __call() 方法实现方法的重载。

//函数原型为 mixed __call(string name, array arguments)

//mixed 是一个伪类型约定。说明一个参数可以接受多种不同的类型

class A{

protected $v;

public function __construct($v){

$this->v = $v;

}

public function __call($funcname, $paras){

//name为要重载的函数名, arguments 则为调用重载函数时传入的参数所组成的数组,第一个参数在arguments[0]

if($funcname !== 'add') return null;

if(count($paras) == 1)    return $this->add1($paras[0]);

if(count($paras) == 2)    return $this->add2($paras[0], $paras[1]);

if(count($paras) == 3)    return $this->add3($paras[0], $paras[1], $paras[2]);

}

//        private function add(){

//            echo "shabi/n";

//        }

private function add1($v1){

echo "调用add1函数/n";

return $this->v + $v1;

}

private function add2($v1, $v2){

echo "调用add2函数/n";

return $this->v + $v1 + $v2;;

}

private function add3($v1, $v2, $v3){

echo "调用add3函数/n";

return $this->v + $v1 + $v2 + $v3;

}

}

$a = new A(100);     $r = $a->add(1);     echo $r."/n";     $r = $a->add(1, 2);     echo $r."/n"; ?>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值