PHP 匿名功能

示例

匿名函数只是没有名称的函数

// 匿名功能
function() {
    return "你好,世界!";
};

在PHP中,匿名函数被视为表达式,因此,应以分号结尾;。

应该将匿名函数分配给变量。

// 匿名功能 assigned to a variable
$sayHello = function($name) {
    return "Hello $name!";
};

print $sayHello('John'); // 你好约翰

或者应将其作为另一个函数的参数传递

$users = [
    ['name' => 'Alice', 'age' => 20], 
    ['name' => 'Bobby', 'age' => 22], 
    ['name' => 'Carol', 'age' => 17]
];

// 映射功能应用匿名功能
$userName = array_map(function($user) {
    return $user['name'];
}, $users);

print_r($usersName); // ['Alice','Bobby','Carol']

甚至从另一个函数返回

自执行匿名功能:

// 对于PHP 7.x
(function () {
    echo "你好,世界!";
})();

// 对于PHP 5.x
call_user_func(function () {
    echo "你好,世界!";
});

将参数传递给自动执行的匿名函数:

// 对于PHP 7.x
(function ($name) {
    echo "Hello $name!";
})('John');

// 对于PHP 5.x
call_user_func(function ($name) {
    echo "Hello $name!";
}, 'John');