一只斗牛犬
没有(从 PHP 7.3 开始)。您可以使用更清晰但效率较低的语法array_reduce():function satisfies(array $objectArray, $callback) { return array_reduce( $objectArray, function($found, $item) use ($callback) { return $found || call_user_func($callback, $item); }, false );}$has = satisfies($array, function($obj) { return $obj->name === 'foo'; });该函数将迭代地调用回调直到它返回true,然后它将继续遍历整个数组(尽管速度相当快)。如果数组中没有元素返回真值,则函数返回false.在每次迭代时发出调用并传递一个对象,该函数比普通的foreach.而且,正如@Jeto 非常正确地指出的那样,我对它进行了过度设计。本来可以写的function satisfies(array $objectArray, $callback, $ifFound = true, $ifNotFound = false) { foreach ($objectArray as $obj) { if (call_user_func($callback, $obj)) { return $ifFound; } } return $ifNotFound;}