함수에서 키워드 사용-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)
use
PHP에서 검색하면 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
'IT박스' 카테고리의 다른 글
HTTP 양식에서 HTTPS로 제출하는 것이 안전합니까? (0) | 2020.10.27 |
---|---|
'const auto'에는 어떤 의미가 있습니까? (0) | 2020.10.27 |
git diff를 사용하여 줄 번호를 추가하고 수정하려면 어떻게해야합니까? (0) | 2020.10.27 |
MySQL Workbench Edit Table Data는 읽기 전용입니다. (0) | 2020.10.27 |
C ++ 벡터의 삽입 및 푸시 백 차이 (0) | 2020.10.27 |