Hi Bruce Weirdan, > If it took the default value as well it could return that. While it's useful > in itself it also would enable you to pass > a marker object and check the > identity of that to know if no matches have been found: > > $none = new stdClass; > $element = first($collection, fn($elt) => ..., $none); > if ($element === $none) { > // nothing found > }
Oh, right, I'd forgotten about that option - that would work. There's still the question of what it would do without a predicate. Making the predicate mandatory in the initial proposal would help avoid the confusion of whether `first() should behave like array_filter() and any() and filter for the first truthy value. Calling it [iterable_]search_callback() or first_matching() or find() might help distinguish this from the reset()/end()/next()/prev() family of functions - not happy with any of my naming ideas Thanks, - Tyson -- PHP Internals - PHP Runtime Development Mailing List To unsubscribe, visit: https://www.php.net/unsub.php