Hi internals, I've created an RFC for https://wiki.php.net/rfc/any_all_on_iterable
This was proposed 2 days ago in https://externals.io/message/111711 with some interest ("Proposal: Adding functions any(iterable $input, ?callable $cb = null, int $use_flags=0) and all(...)") - The $use_flags parameter was removed The primitives any() and all() are a common part of many programming languages and help in avoiding verbosity or unnecessary abstractions. - https://hackage.haskell.org/package/base-4.14.0.0/docs/Prelude.html#v:any - https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/some - https://docs.python.org/3/library/functions.html#all - https://docs.oracle.com/javase/8/docs/api/java/util/stream/Stream.html#allMatch-java.util.function.Predicate- For example, the following code could be shortened significantly ``` // Old version $satisifes_predicate = false; foreach ($item_list as $item) { if (API::satisfiesCondition($item)) { $satisfies_predicate = true; break; } } if (!$satisfies_predicate) { throw new APIException("No matches found"); } // New version is much shorter and readable if (!any($item_list, fn($item) => API::satisfiesCondition($item))) { throw new APIException("No matches found"); } ``` That example doesn't have any suitable helpers already in the standard library. Using array_filter would unnecessarily call satisfiesCondition even after the first item was found, and array_search doesn't take a callback. A proposed implementation is https://github.com/php/php-src/pull/6053 - it takes similar flags and param orders to array_filter(). Thanks, - Tyson -- PHP Internals - PHP Runtime Development Mailing List To unsubscribe, visit: https://www.php.net/unsub.php