Computer >> 컴퓨터 >  >> 프로그램 작성 >> PHP

익명 PHP 함수의 상위 범위에서 변수에 액세스

<시간/>

'사용' 키워드는 특정 함수의 범위에 변수를 바인딩하는 데 사용할 수 있습니다.

함수의 범위에 변수를 묶기 위해 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 범위에서 값이 변경되었으므로 함수 호출 시 변경 사항이 반영됩니다.