Что такое замыкание в PHP и почему он использует идентификатор «использования»?

Я проверяю некоторыеPHP 5.3.0 функции и наткнулся на некоторый код на сайте, который выглядит довольно забавно:

public function getTotal($tax)
{
    $total = 0.00;

    $callback =
        /* This line here: */
        function ($quantity, $product) use ($tax, &$total)
        {
            $pricePerItem = constant(__CLASS__ . "::PRICE_" .
                strtoupper($product));
            $total += ($pricePerItem * $quantity) * ($tax + 1.0);
        };

    array_walk($this->products, $callback);
    return round($total, 2);
}

в качестве одного из примеров наанонимные функции.

Кто-нибудь знает об этом? Любая документация? И это выглядит злым, стоит ли его когда-либо использовать?

Ответы на вопрос(5)

Ваш ответ на вопрос