我正在阅读代码并遇到了这种语法:
$customerIDs = array_map(function(Customer $customer) { return $customer->id; }, $customers);
其中$customers
是数组。
我的困惑在于试图理解function(Customer $customer)
。我看到Customer
是一个类,但那么$customer
是什么?
答案 0 :(得分:4)
这部分:
function(Customer $customer) { return $customer->id; }
是一个匿名函数。它是PHP 5.3中的“新”功能。它几乎相当于:
function someFunction(Customer $customer) {
return $customer->id;
}
$customerIDs = array_map('someFunction', $customers);
对于Customer $customer
部分,这只是一个类型约束的参数。如果传递的参数不是Customer
类型,则会抛出错误。
您可以阅读有关匿名函数at the php.net documentation的更多信息。