IT박스

함수에서 키워드 사용-PHP

itboxs 2020. 10. 27. 07:57
반응형

함수에서 키워드 사용-PHP


중복 가능성 :
Php 5.3.0에서 기능 "사용"식별자는 무엇입니까? 정상적인 프로그래머가 그것을 사용해야합니까?

나는 PHP에서 클로저를 조사해 왔는데 이것이 내 관심을 끌었던 것입니다.

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네임 스페이스에서 사용되는 키워드를 찾지 만 여기서는 다르게 보입니다.

감사.


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

클로저를 사용하면 함수 컨텍스트 외부에있는 변수에 액세스하려면 use 함수를 사용하여 함수에 명시 적으로 권한을 부여해야합니다. 이 경우의 의미는 $ tax 및 $ total 변수에 대한 액세스 권한을 함수에 부여한다는 것입니다.

$ tax가 getTotal 함수의 매개 변수로 전달되고 $ total이 클로저가 정의 된 줄 바로 위에 설정되어 있음을 알 수 있습니다.

지적해야 할 또 다른 점은 $ tax는 복사본으로 전달되고 $ total은 참조로 전달된다는 것입니다 (앞에 & 기호를 추가하여). 참조로 전달하면 클로저가 변수 값을 수정할 수 있습니다. 이 경우 $ tax 값에 대한 모든 변경 사항은 $ total의 실제 값 동안 마감 내에서만 유효합니다.


PHP에서 익명 함수를 선언 할 때 닫아야하는 주변 범위 (있는 경우)의 변수를 알려야합니다. 함수 본문에 언급 된 범위 내 어휘 변수에 대해 자동으로 닫히지 않습니다. 다음 목록 use은 단순히 닫을 변수 목록입니다.


이는 내부 함수가 매개 변수뿐만 아니라 외부 함수의 $ tax 및 $ total 변수를 사용할 수 있음을 의미합니다.

참고 URL : https://stackoverflow.com/questions/6320521/use-keyword-in-functions-php

반응형