当前位置: 代码迷 >> PHP >> 如何在子类用父类的魔术方法
  详细解决方案

如何在子类用父类的魔术方法

热度:188   发布时间:2016-04-28 18:47:12.0
怎么在子类用父类的魔术方法
本帖最后由 meenw 于 2014-07-29 12:47:44 编辑
父类:P

class P{
    private $name="";
    function __construct(){
        $this->name="hello";
    }
    public function __set($name, $value){        
        $this->$name=$value;      
    }
    public function showName(){
        echo $this->name;
    }
}

子类:C
class C extends P{
    function __construct(){
        parent::__construct();

        //想在这里给P类的$name换个值(你好)怎么做?
    }    
}


$c=new C;
$c->showName;
然后输出:你好
怎么实现?
------解决方案--------------------
class P{
    private $name="";
    function __construct(){
        $this->name="hello";
    }
    public function __set($name, $value){        
        $this->$name=$value;      
    }
    public function showName(){
        echo $this->name;
    }
}
class C extends P{
    function __construct(){
        parent::__construct();
        $this->name = '你好';
    }    
}
$c=new C;
$c->showName();

print_r($c);
你好
C Object
(
    [name:P:private] => 你好
)

------解决方案--------------------

class P{
    private $name="";
    function __construct(){
        $this->name="hello";
    }
    public function __set($name, $value){
        $this->$name=$value;
    }
    public function showName(){
        echo $this->name;
    }
}


class C extends P{
    function __construct(){
        parent::__construct();
         //想在这里给P类的$name换个值(你好)怎么做?
 $this->name = '你好';
    }
}

$obj = new C();
$obj->showName();
  相关解决方案