Это было бы прекрасно, и спасибо за информацию. Но, увы, мне нужно что-то, что будет работать в моей текущей производственной среде (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 :(

Ответы на вопрос(3)

Ваш ответ на вопрос