scottparker
@scottparker

Можно ли определить является метод статическим или нет?

Добрый вечер.
Есть некоторый класс с набором статических и обычных методов.
class MyClass
{
    public static function methodA(){
       ...
    }
    public function methodB(){
       ...
    }
}


Есть массив с названием класса и названием метода (статического или нет мы не знаем), например,
$data = [
  "class"=>  "MyClass",
  "method"=> "methodA"
];

Нужно вызвать метод methodA не зная статический он или нет.
Можно ли определить каким методом является methodA? (либо существует другое решение данной задачи?)
  • Вопрос задан
  • 150 просмотров
Решения вопроса 1
rpsv
@rpsv
делай либо хорошо, либо никак
(new ReflectionMethod('MyClass', 'methodA'))->isStatic();

Ну а вообще зачем вам знать статический или нет метод? Статический вызывается без контекста, а НЕ статически с контекстом, т.е. по хорошему вызов должен быть:
call_user_func([$object, 'method']);
call_user_func(['ClassName', 'staticMethod']);
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы