Обратный вызов метода PHP

Как передать метод обратного вызова в качестве параметра другому методу? Все примеры, которые я видел, используют функции, но не методы. Что я пробовал это:

call_user_func($this, 'method_name', [$param1, $param2,...]);

Также есть другой, более элегантный способ, например, просто пройти $this->method_name в качестве параметра?

Я знаю, что мог бы добавить обратный вызов как:

function () use ($param1, $param2,...) {
return $this->method_name($param1, $param2);
}

Но я хотел бы опустить часть закрытия.

1

Решение

Вы также можете использовать [$obj, 'method'] в качестве обратного вызова, привязать к объекту.

class A {

public $b = 'test';

public function callback() {
echo $this->b;
}
}

$a = new A();
$f = [$a, 'callback'];
$f();
1

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector