<?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!
?>
Таким образом, каково лучшее обходное решение?
Лучший способ решить эту проблему - перейти на PHP 5.3, где доступны поздние статические привязки . Если это не вариант, вам, к сожалению, придется переделать свой класс.