PHP函数和变量继承

Row*_*ker 5 php

有人可以帮我理解PHP类中的变量/函数继承.

我的父类有一个由所有子类使用的函数.但是,每个子类都需要在此函数中使用它自己的变量.我想静态地调用子类中的函数.在下面的示例中,将显示"world",而不是子类中的值.

任何人都可以解释我如何获得函数来回显子类中的值.我应该使用接口吗?这是否与后期静态绑定有关(由于使用5.3.3之前版本的PHP,我无法使用)?

class myParent
{
    static $myVar = 'world';
    static function hello()
    {
        echo self::$myVar;  
    }
}

class myFirstChild extends myParent
{
    static $myVar = 'earth';
}

class mySecondChild extends myParent
{
    static $myVar = 'planet';
}

myFirstChild::hello();
mySecondChild::hello();
Run Code Online (Sandbox Code Playgroud)

cha*_*aos 2

是的,你不能那样做。的声明static $myVar不会以任何方式相互交互,正是因为它们是静态的,是的,如果你有 5.3.0,你可以绕过它,但你没有,所以你不能。

我的建议是只使用非静态变量和方法。