繁体   English   中英

如何从子类访问父变量

[英]how to access parent variable from child class

我有两个类,一个父类,另一个扩展,我需要在扩展类中使用主变量。 例如

class parentClass
{
    $this->value = null
    function __construct()
    {
        echo "im parent" ;
    }

}
class childClass extends parentClass
{

    function sayIt()
    {
        var_dump($this->value);
    }
}

$p = new parentClass ; 
$p->value = 500 ; 

$c = new childClass ; 
$c->sayIt(); // this output null ! i want it to output 500 , how i can do that

谢谢

这不是继承的方式。 childClass不会自动连接到父类,它只是从parentClass继承而来,它只是从父类继承所有公共和受保护的变量/方法。 它未连接到父实例。

如果将其拥有以输出500,则必须以某种方式将其分配给子类实例:

$c = new childClass ; 
$c->value = 500;
$c->sayIt()

如果需要在所有类和实例之间共享的变量,则可以使用static变量。

Bad Bad Bad该代码严格用于教育目的,我建议您获得有关面向对象编程的基本原理的书

将变量设为静态将使其可通过子类访问

class parentClass {
    public static $value = null;

    function __construct() {
        echo "patent called";
    }
}
class childClass extends parentClass {

    function sayIt() {
        var_dump(self::$value);
    }
}

$p = new parentClass();
parentClass::$value = 500;

$c = new childClass();
$c->sayIt();

您会混淆类构造和引用。

$p是父类的实例。

$c是子类的实例。

他们不共享数据。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM