В PHP есть такая функция, которая называется call_user_func_array . Данная функции может использоваться для динамического вызова методов класса, как с параметрами так и без .

Использование функции call_user_func_array в PHP

В PHP есть такая функция, которая называется call_user_func_array. Данная функции может использоваться для динамического вызова методов класса, как с параметрами так и без.

Особенно, данная функция может быть полезна при динамическом вызове обработчиков маршрутов в MVC коде.

Допустим у нас есть следующий класс контроллера статей ArticlesController. Код максимально упрощен для того, чтобы показать суть использования данной функции.

<?php // класс контроллера статей class ArticlesController
{

    // действие, которое отображает одну статью по идентификатору $id
    public function actionArticle($id) {
        return "Id={$id}";
    }
    

    // действие которое отображает статью из корпоративного блога
    // $company_name - название компании
    // $article_id   - идентификатор статьи
    public function actionСompanyBlog($company_name,$article_id) {
        return "Company={$company_name};Article Id={$article_id}";
    }
}


// вызов первой метода с одним параметром
$result[] = call_user_func_array(["ArticlesController","actionArticle"], [123]);

// вызов второго метода с двумя параметрами
$result[] =  call_user_func_array(["ArticlesController","actionСompanyBlog"], ["Myrusakov Support",12345]);



print_r( $result );

Данная функция принимает два параметра - массива. Первый массив состоит из класса и метода, а второй из параметров, которые передаются методу массива.

Функция call_user_func_array сама производит вызов метода контроллера и передает ему параметры, причем в каждый аргумент метода будет передано соответствующее значение параметра.

Вот такая полезная функции call_user_func_array есть в PHP.