传递给函数的参数必须是可调用的,数组给定
2022-08-30 15:55:59
我正在尝试对集合中的每个元素运行一个方法。它是驻留在同一类中的对象方法:
protected function doSomething()
{
$discoveries = $this->findSomething();
$discoveries->each([$this, 'doSomethingElse']);
}
protected function doSomethingElse($element)
{
$element->bar();
// And some more
}
如果我在调用之前使用检查,它将返回 true,因此显然它是可调用的。但是,调用本身会引发异常:Collection::each
is_callable([$this, 'doSomethingElse'])
类型错误:传递给 Illuminate\Support\Collection::each() 的参数 1 必须是可调用的,给定的数组,在第 46 行的 ---.php 中调用
尝试调用的方法可以在这里找到。
我只是通过传递一个本身只是调用该函数的闭包来绕过这一点,但这绝对是一个更干净的解决方案,我无法找出为什么它会抛出错误。