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; }

匿名関数です。これは、PHP5.3の「新」機能です。これは、次とほぼ同等です。

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

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

部分に関してはCustomer $customer、それは単なる型に制約のある議論です。渡された引数がタイプでない場合はエラーをスローしますCustomer

匿名関数の詳細については、php.netのドキュメントをご覧ください

于 2012-06-08T22:39:21.913 に答える