首页 新闻 搜索 专区 学院

PHP怎么在子类用父类的魔术方法

0
悬赏园豆:50 [已解决问题] 解决于 2014-10-22 11:40

父类:P

 1 class P{
 2     private $name="";
 3     function __construct(){
 4         $this->name="hello";
 5     }
 6     public function __set($name, $value){        
 7         $this->$name=$value;      
 8     }
 9     public function showName(){
10         echo $this->name;
11     }
12 }

 

子类:C

1 class C extends P{
2     function __construct(){
3         parent::__construct();
4  
5         //想在这里给P类的$name换个值(你好)怎么做?
6     }    
7 }

$c=new C;
$c->showName;
然后输出:你好
怎么实现?

php
Meen的主页 Meen | 菜鸟二级 | 园豆:321
提问于:2014-07-29 13:04
< >
分享
最佳答案
0
实现:
class C extends P
{
  function __construct()
  {
    parent::__construct();
    
    $this->name = "你好";
  }
}

$c = new C;
$c->showName();

//原理:子类继承父类后,则子类就可以使用父类中所有的方法,包括魔术方法; 子类中调用父类构造方法,先得到$this->name = 'hello';随后进行赋值,会直接调用__set()方法,对name进行赋值'你好', 所以$this->showName()输出'你好'。
收获园豆:50
ercom | 菜鸟二级 |园豆:269 | 2014-07-31 01:12
其他回答(2)
0

构造函数得传参吧

yuankess | 园豆:252 (菜鸟二级) | 2014-07-29 14:20
0
1 class C extends P{
2     function __construct(){
3         parent::__construct();
4          //想在这里给P类的$name换个值(你好)
5         $this->name="你好";
6     } 
7 }
Meen | 园豆:321 (菜鸟二级) | 2014-07-29 16:09
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册