Hi Marco Pivetta, > Would it make sense, instead of having a third boolean parameter (causing two > parameters to be coupled together - already quite messy with existing array > functions) for `any()` and `all()` to just detect if the given callback > requires >1 parameter? > > That would make this much simpler.
I find that to be inconsistent with how other internal functions accepting callbacks such as `array_filter` behave. It would also be unexpected if users or tooling wrap callbacks with other callbacks. Developers would also expect `func_get_args()` to work. ``` <?php function my_none(iterable $values, callable $predicate) { return all($values, fn(...$args) => $predicate(...$args)); } // PHP can't distinguish between these when given `fn(...$args)` // - would throw if passed 1 parameter my_none($values, fn($value, $key) => $value == true || $key == 'x'); // - would throw if passed 2 parameters (too many) my_none($values, 'is_string'); ``` Thanks, - Tyson -- PHP Internals - PHP Runtime Development Mailing List To unsubscribe, visit: https://www.php.net/unsub.php