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.Почему?
Person::whatever()
I'm a ghost
Вы ищете что-то под названием Позднее статическое связывание , для которого требуется PHP 5.3 +
«self» используется классом Current, если вы хотите получить дочернее статическое свойство, используйте «static» как:
final public static function __callStatic($method, $args = array()) { echo **static**::$var; }