Задать вопрос
scottparker
@scottparker

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

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


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

Нужно вызвать метод methodA не зная статический он или нет.
Можно ли определить каким методом является methodA? (либо существует другое решение данной задачи?)
  • Вопрос задан
  • 170 просмотров
Подписаться 1 Простой 8 комментариев
Помогут разобраться в теме Все курсы
  • Skillfactory
    Профессия Fullstack веб-разработчик на JavaScript и PHP
    20 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
Решения вопроса 1
rpsv
@rpsv
делай либо хорошо, либо никак
(new ReflectionMethod('MyClass', 'methodA'))->isStatic();

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

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

Похожие вопросы