我正在阅读代码并遇到了以下语法:
$customerIDs = array_map(function(Customer $customer) { return $customer->id; }, $customers);
$customers
数组在哪里。
我的困惑在于试图理解function(Customer $customer)
。我看到这Customer
是一个类,但那是什么$customer
?
我正在阅读代码并遇到了以下语法:
$customerIDs = array_map(function(Customer $customer) { return $customer->id; }, $customers);
$customers
数组在哪里。
我的困惑在于试图理解function(Customer $customer)
。我看到这Customer
是一个类,但那是什么$customer
?
这部分:
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 文档中阅读有关匿名函数的更多信息。