'사용' 키워드는 특정 함수의 범위에 변수를 바인딩하는 데 사용할 수 있습니다.
함수의 범위에 변수를 묶기 위해 use 키워드를 사용하세요 -
예시
<?php $message = 'hello there'; $example = function () { var_dump($message); }; $example(); $example = function () use ($message) { // Inherit $message var_dump($message); }; $example(); // Inherited variable's value is from when the function is defined, not when called $message = 'Inherited value'; $example(); $message = 'reset to hello'; //message is reset $example = function () use (&$message) { // Inherit by-reference var_dump($message); }; $example(); // The changed value in the parent scope // is reflected inside the function call $message = 'change reflected in parent scope'; $example(); $example("hello message"); ?>
출력
이것은 다음과 같은 출력을 생성합니다 -
NULL string(11) "hello there" string(11) "hello there" string(14) "reset to hello" string(32) "change reflected in parent scope" string(32) "change reflected in parent scope"
원래 'example' 함수가 먼저 호출됩니다. 두 번째로 $message가 상속되고 함수가 정의될 때 그 값이 변경됩니다. $message의 값이 재설정되고 다시 상속됩니다. root/parent 범위에서 값이 변경되었으므로 함수 호출 시 변경 사항이 반영됩니다.