Как получить статическое свойство подкласса в статическом методе в суперклассе - PullRequest
0 голосов
/ 18 октября 2019

У меня есть ситуация, похожая на следующий код:

class ParentClass
{

    public static $property = 'parentValue';

    public static function doSomethingWithProperty() {

        echo 'Method From Parent Class:' . self::$property . "\n";

    }

}

class ChildClass extends ParentClass 
{

    public static $property = 'childValue';

}


echo "Directly: " . ChildClass::$property . "\n";
ChildClass::doSomethingWithProperty();

Запустив это из кли я получаю вывод:

Directly: childValue
Method From Parent Class: parentValue

Есть ли способ получить статическое свойствоопределены в подклассе из статического метода, определенного в родительском классе?

1 Ответ

2 голосов
/ 18 октября 2019

Использование ключевого слова self всегда ссылается на один и тот же класс.

Чтобы разрешить переопределение статического свойства / метода, вы должны использовать ключевое слово static. Ваш метод должен выглядеть следующим образом

public static function doSomethingWithProperty()
{
    echo 'Method From Parent Class:' . static::$property . "\n";
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...