douzhan1031 2013-04-06 18:19
浏览 39
已采纳

在PHP中,我们如何获得父类变量?

I was under the impression that child class inherit the properties of their parent. The following, however, is output null in class B... Can someone tell me how I access properties from the parent class?

$aClass = new A();
$aClass->init();

class A {

    function init() 
    {
        $this->something = 'thing';
        echo $this->something; // thing
        $bClass = new B();
        $bClass->init();
    }

}

class B extends A {

    function init() 
    {
        echo $this->something; // null - why isn't it "thing"?
    }
}
  • 写回答

3条回答 默认 最新

  • dqv84329 2013-04-06 18:24
    关注

    There are several errors in your code. I've corrected them. The following script should work as expected. I hope the code comments are helpful:

    class A {
    
        // even if it is not required you should declare class members
        protected $something;
    
        function init() 
        {
            $this->something = 'thing';
            echo 'A::init(): ' . $this->something; // thing
        }
    
    }
    
    // B extends A, not A extends B
    class B extends A {
    
        function init() 
        {
            // call parent method to initialize $something
            // otherwise init() would just being overwritten
            parent::init();
            echo 'B::init() ' . $this->something; // "thing"
        }
    }
    
    
    // use class after(!) definition
    $aClass = new B(); // initialize an instance of B (not A)
    $aClass->init();
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥17 pro*C预编译“闪回查询”报错SCN不能识别
  • ¥15 微信会员卡接入微信支付商户号收款
  • ¥15 如何获取烟草零售终端数据
  • ¥15 数学建模招标中位数问题
  • ¥15 phython路径名过长报错 不知道什么问题
  • ¥15 深度学习中模型转换该怎么实现
  • ¥15 HLs设计手写数字识别程序编译通不过
  • ¥15 Stata外部命令安装问题求帮助!
  • ¥15 从键盘随机输入A-H中的一串字符串,用七段数码管方法进行绘制。提交代码及运行截图。
  • ¥15 TYPCE母转母,插入认方向