Это было бы прекрасно, и спасибо за информацию. Но, увы, мне нужно что-то, что будет работать в моей текущей производственной среде (5.2.6). СПАСИБО!
, если статический атрибут определен в родительском классе, он не может быть переопределен в дочернем классе. Но мне интересно, есть ли способ обойти это.
Я пытаюсь написать оболочку для чужой (несколько неуклюжей) функции. Рассматриваемая функция может быть применена ко многим различным типам данных, но требует различных флагов и опций для каждого. Но в 99% случаев по умолчанию для каждого типа будет достаточно.
Было бы хорошо, если бы это можно было сделать с наследованием, без необходимости каждый раз писать новые функции. Например:
class Foo {
public static $default = 'DEFAULT';
public static function doSomething ($param = FALSE ) {
$param = ($param === FALSE) ? self::$default : $param;
return $param;
}
}
class Bar extends Foo {
public static $default = 'NEW DEFAULT FOR CHILD CLASS';
}
echo Foo::doSomething() . "\n";
// echoes 'DEFAULT'
echo Bar::doSomething() . "\n";
// echoes 'DEFAULT' not 'NEW DEFAULT FOR CHILD CLASS'
// because it references $default in the parent class :(