source

함수에서 키워드 사용 - PHP

manysource 2022. 10. 15. 09:58

함수에서 키워드 사용 - PHP

중복 가능성:
Php 5.3.0에서 Function "Use" Identifier는 무엇입니까? 제정신인 프로그래머가 그것을 사용해야 합니까?

저는 PHP에서 Closures를 조사하고 있는데, 이것이 제가 주목한 것입니다.

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

        $callback =
            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);
    }

그리고 누가 사용법에 대해 설명해 주세요.use이 코드에서는,

function ($quantity, $product) use ($tax, &$total)

검색할 때usePHP에서, 그것은use키워드에서는 네임스페이스에서 사용되지만 여기서는 다르게 표시됩니다.

감사해요.

이 경우에도 "사용"의 사용은 정확합니다.

닫힘의 경우 함수의 컨텍스트를 벗어난 변수에 액세스하려면 사용 함수를 사용하여 함수에 명시적으로 권한을 부여해야 합니다.이 경우 $tax 변수와 $total 변수에 대한 함수 접근을 허용한다는 것을 의미합니다.

$tax는 getTotal 함수의 파라미터로 전달되고 $total은 closure가 정의되어 있는 행 바로 위에 설정되어 있습니다.

또 하나 짚고 넘어가야 할 점은 $tax는 복사본으로 전달되고 $total은 참조로 전달된다는 것입니다(앞에 & 기호를 추가).참조를 통과하면 닫힘이 변수 값을 수정할 수 있습니다.이 경우 $tax의 가치가 변경되면 실제 총 $total의 가치가 변경되는 동안에만 효력이 발생합니다.

PHP에서 어나니머스 함수를 선언할 때 닫아야 하는 주변 범위 내의 변수(있는 경우)를 지시해야 합니다.이러한 변수는 함수 본문에 언급된 범위 내 어휘 변수를 자동으로 닫히지 않습니다.그 뒤의 리스트use단순히 닫을 변수 목록입니다.

즉, 내부 함수는 변수 $tax 및 외부 함수의 변수 $total을 사용할 수 있으며 매개 변수도 사용할 수 있습니다.

언급URL : https://stackoverflow.com/questions/6320521/use-keyword-in-functions-php