PHP에서 익명 함수 호출 전 변수
다음 코드가 있다고 가정해 보겠습니다:
<?php
$pow = 2;
$func = function($num) use ($pow)
{
return $num ** $pow;
};
echo $func(4);
?>
위의 코드는 변수 $pow가
함수 선언 전에 작성되었기 때문에 작동합니다.
그러나 변수 선언을 함수 호출 앞에 배치하면
모두 작동하지 않습니다:
<?php
$func = function($num) use ($pow)
{
return $num ** $pow;
};
$pow = 2;
echo $func(4);
?>
참조로 변수를 전달하면 문제를 해결할 수 있습니다:
<?php
$func = function($num) use (&$pow)
{
return $num ** $pow;
};
$pow = 2;
echo $func(4);
?>
코드가 의도한 대로 작동하도록 수정하세요:
<?php
$func = function() use ($num1, $num2)
{
return $num1 + $num2;
};
$num1 = 2;
$num2 = 3;
echo $func();
?>