php商品包装规格,一个php的包装类

class Packer{

var $packin;

public function __construct(&$packin){

$this->packin=$packin;

}

public function __tostring(){

return "[Packer]";

}

protected function __get($k){

$funcName='get'.ucfirst($k);

if(method_exists($this,$funcName)){ //[注释a]不可用 is_callable, 因为定义了__call, 总返回true

return $this->$funcName();

}

return $this->packin->$k;

}

protected function __set($k,$args){

$funcName='set'.ucfirst($k);

if(method_exists($this,$funcName)){ //同注释a

call_user_func_array(array($this,$funcName),$args);

return;

}

$this->packin->$k=$args;

}

protected function __call($k,$args){

if(method_exists($this->packin,$k)){

return call_user_func_array(array(&$this->packin,$k),$args);

}

}

}

class Product{

var $price;

}

class Book extends Packer{

function setPrice($p){

$this->packin->price=$p;

echo("set price $p/n");

}

function setName($s){

echo("set name $s/n");

}

}

$p=new Product();

$p->price=120;

$book=new Book($p);

$book->name="c++ primer";

$book->price=130;

echo($book->price);

?>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值