나는 다음과 같은 코드를 보았다 :범위에 대한 PHP use() 함수?
function($cfg) use ($connections) {}
하지만 php.net은 그 기능을 언급하지 않는 것 같다. 범위와 관련이있는 것 같지만 어떻게?
나는 다음과 같은 코드를 보았다 :범위에 대한 PHP use() 함수?
function($cfg) use ($connections) {}
하지만 php.net은 그 기능을 언급하지 않는 것 같다. 범위와 관련이있는 것 같지만 어떻게?
use
은 기능이 아니며 Closure syntax의 일부입니다. 단순히 외부 범위의 지정된 변수를 클로저 내부에서 사용할 수있게합니다. 예를 들어
$foo = 42;
$bar = function() {
// can't access $foo in here
echo $foo; // undefined variable
};
$baz = function() use ($foo) {
// $foo is made available in here by use()
echo $foo; // 42
}
: $의 connections`는`null`되지 않을 것`주목해야한다
$array = array('foo', 'bar', 'baz');
$prefix = uniqid();
$array = array_map(function ($elem) use ($prefix) {
return $prefix . $elem;
}, $array);
// $array = array('4b3403665fea6foo', '4b3403665fea6bar', '4b3403665fea6baz');
$connections
(부모 변수 변수)을 해당 범위에서 사용할 수 있도록 익명 함수에 알립니다.
이 없으면 $connections
이 함수 내에 정의되지 않습니다.
; 익명 함수의 범위에'use ($ connections)'로 명시 적으로 임포트되지 않았다면 정의되지 않은 변수가됩니다. –
@IanGustafson 감사합니다. 답변을 업데이트하겠습니다. – alex