PHP ВЫЗОВ МЕТОДА КЛАССА ПО ПЕРЕДАННОЙ СТРОКЕ
Часто бывает необходимость вызвать метод класса, название которого передается в виде строки. Для этого в PHP существует функция call_user_func(), которая позволяет вызвать функцию или метод класса по переданному имени.
Функции можно вызывать так:
function myFunction($arg1, $arg2) {
// код функции
}
call_user_func('myFunction', $val1, $val2);
При вызове методов класса нужно передавать массив с объектом класса и названием метода. Также можно передать аргументы метода в виде отдельных параметров:
class MyClass {
function myMethod($arg1, $arg2) {
// код метода
}
}
$obj = new MyClass();
call_user_func(array($obj, 'myMethod'), $val1, $val2);
Если необходимо передать переменную с названием метода, можно воспользоваться функцией call_user_method(), но она уже устарела и в более новых версиях PHP не работает. Вместо нее следует использовать методы класса через переменную:
class MyClass {
function myMethod($arg1, $arg2) {
// код метода
}
}
$obj = new MyClass();
$method = 'myMethod';
$obj->$method($val1, $val2);
Паттерн Фабрика на реальном примере в PHP
Основы php. Строковые функции
Методы в php - часть 1 - Базовый курс PHP-7
#54 Уроки PHP - Учим язык PHP, Наследование и перегрузка методов на языке PHP
Конструктор и Деструктор в php - Базовый курс PHP-7
PHP 8.0 - 8.2 - Производительность и фичи
PHP ООП: внедрение зависимостей и магия рефлексии
Группируем функции по принципу: один класс - одна задача. PHP OOP