0

我正在阅读代码并遇到了以下语法:

$customerIDs = array_map(function(Customer $customer) { return $customer->id; }, $customers);

$customers数组在哪里。

我的困惑在于试图理解function(Customer $customer)。我看到这Customer是一个类,但那是什么$customer

4

1 回答 1

4

这部分:

function(Customer $customer) { return $customer->id; }

是一个匿名函数。这是 PHP 5.3 中的一个“新”特性。它几乎等同于:

function someFunction(Customer $customer) {
    return $customer->id;
}

$customerIDs = array_map('someFunction', $customers);

至于这Customer $customer部分,那只是一个类型约束的参数。如果传递的参数不是 type ,则会引发错误Customer

您可以在 php.net 文档中阅读有关匿名函数的更多信息。

于 2012-06-08T22:39:21.913 回答