함수에서 키워드 사용 - 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)
검색할 때use
PHP에서, 그것은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
'source' 카테고리의 다른 글
"u" 및 "r" 문자열 프리픽스는 정확히 어떤 역할을 하며 raw 문자열 리터럴은 무엇입니까? (0) | 2022.10.15 |
---|---|
텍스트 파일 내용을 삭제하지 않고 삭제하는 방법 (0) | 2022.10.15 |
openssl_encrypt에서의 초기화 벡터 사용 (0) | 2022.10.14 |
N 이하의 모든 소수를 나열하는 가장 빠른 방법 (0) | 2022.10.14 |
INSERT SELECT와 함께 재귀 CTE를 사용하여 Maria와 함께 테이블 데이터 생성DB (0) | 2022.10.14 |