Абстрактное статическое свойство не может быть перезаписано? - PullRequest
2 голосов
/ 01 февраля 2012
abstract class Ghost {

    protected static $var = 'I\'m a ghost';

    final public static function __callStatic($method, $args = array()) {
        echo self::$var;
    }

}


class Person extends Ghost { 
    protected static $var = 'I\'m a person';
}

Вызов Person::whatever() напечатает: I'm a ghost.Почему?

Ответы [ 2 ]

4 голосов
/ 01 февраля 2012

Вы ищете что-то под названием Позднее статическое связывание , для которого требуется PHP 5.3 +

1 голос
/ 24 мая 2015

«self» используется классом Current, если вы хотите получить дочернее статическое свойство, используйте «static» как:

final public static function __callStatic($method, $args = array()) {
   echo **static**::$var;
}
...