PHP: переопределить статический метод

0

У меня есть черта, которая имеет статический метод, который я хочу переопределить и вызвать его снова... Я пробовал это:

trait MyTrait{
    static function myMethod(){ echo "Hi from my trait".PHP_EOL; }
}
class MyClass{
    use MyTrait {
        myMethod as myMethodTrait;
    }
    static function myMethod(){
        self::myMethodTrait();
        echo "Hi from my class";
    }
}
MyClass::myMethodTrait();

У меня есть эта ошибка:

Fatal error: Could not find trait 0 in (...)

Где ошибка?

Tks...

Теги:
oop
traits
method-overriding

1 ответ

1
Лучший ответ

Я просто пробовал этот код, и он работает так, как должен.

MyClass::myMethodTrait(); // returns Hi from my trait 

а также

MyClass::myMethod(); // returns Hi from my trait Hi from my class

Строго из предоставленного кода нет ошибки. Может быть, есть еще информация, которую вы могли бы добавить?

  • 0
    Я обновил свою версию php, и она работает нормально ... Это может быть ошибкой версии ... Я пытался с php 5.4.10 ...
  • 1
    Ну, учитывая, что черты доступны с 5.4.0, возможно, были некоторые ошибки. Рад, что все получилось :)

Ещё вопросы

Сообщество Overcoder
Наверх
Меню