用类定义的array_map函数

时间:2012-06-08 22:37:07

标签: php

我正在阅读代码并遇到了这种语法:

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

其中$customers是数组。

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

1 个答案:

答案 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的更多信息。