Я пытаюсь запустить метод для каждого элемента внутри коллекции. Это объектный метод, находящийся в том же классе:
protected function doSomething()
{
$discoveries = $this->findSomething();
$discoveries->each([$this, 'doSomethingElse']);
}
protected function doSomethingElse($element)
{
$element->bar();
// And some more
}
Если я предшествую вызову Collection::each
с тегом is_callable([$this, 'doSomethingElse'])
, он возвращает true, поэтому, по-видимому, он может быть вызван. Однако сам вызов вызывает исключение:
Ошибка типа: аргумент 1 передан в иллюстрацию\Поддержка\Коллекция:: each() необходимо быть вызванным, массив задан, вызывается в ---. php в строке 46
Метод, который нужно вызвать, можно найти здесь.
Я обойду это, просто передав закрытие, которое сам просто вызывает эту функцию, но это, безусловно, намного более чистое решение, и я не могу понять, почему он выдает ошибку.