Переопределение статических участников в производных классах в PHP

<?php
class Base {
  protected static $c = 'base';

  public static function getC() {
    return self::$c;
  }
}

class Derived extends Base {
  protected static $c = 'derived';
}

echo Base::getC(); // output "base"
echo Derived::getC();    // output "base", but I need "derived" here!
?>

Таким образом, каково лучшее обходное решение?

12
задан hakre 13 June 2012 в 21:43
поделиться

1 ответ

Лучший способ решить эту проблему - перейти на PHP 5.3, где доступны поздние статические привязки . Если это не вариант, вам, к сожалению, придется переделать свой класс.

9
ответ дан 2 December 2019 в 21:22
поделиться
Другие вопросы по тегам:

Похожие вопросы: