Closure {
/* Methods */
private __construct()
public static bind(Closure $closure, object|null $newThis, object|string|null $newScope = "static"): Closure|null
public bindTo(object|null $newThis, object|string|null $newScope = "static"): Closure|null
public call(object $newThis, mixed ...$args): mixed
public static fromCallable(callable $callback): Closure
}
<?php
$input = array(1, 2, 3, 4, 5, 6);
// Creates a new anonymous function and assigns it to a variable
$filter_even = function($item) {
return ($item % 2) == 0;
};
// Built-in array_filter accepts both the data and the function
$output = array_filter($input, $filter_even);
// The function doesn't need to be assigned to a variable. This is valid too:
$output = array_filter($input, function($item) {
return ($item % 2) == 0;
});
print_r($output);
// A collection of Post objects
$posts = [/* … */];
$ids = array_map(fn($post) => $post->id, $posts);