프로그래밍 언어/PHP

PHP에서 closure란 무엇이며 왜 "use"식별자를 사용하는 이유

Rateye 2021. 6. 11. 11:27
728x90
반응형
질문 : 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);
}

익명 함수 에 대한 예제 중 하나로.

아무도 이것에 대해 알고 있습니까? 문서가 있습니까? 그리고 그것은 사악 해 보입니다.

답변

이것이 PHP가 클로저를 표현하는 방법입니다. 이것은 전혀 악하지 않으며 실제로 매우 강력하고 유용합니다.

기본적으로 이것이 의미하는 바는 익명 함수가 $tax $total 대한 참조)를 "캡처"하고 값을 보존하도록 허용한다는 것입니다 (또는 $total 경우 참조). $total 자체에) 익명 함수 자체 내의 상태로.

출처 : https://stackoverflow.com/questions/1065188/in-php-what-is-a-closure-and-why-does-it-use-the-use-identifier
728x90
반응형