PHP에서 익명 함수의 외부 변수 변경
익명 함수 내부에서 변경된 외부 변수는 외부에서 변경되지 않습니다:
<?php
$num = 1;
$func = function() use ($num)
{
$num = 2;
};
$func();
echo $num; // 1
?>
변경 사항이 적용되도록 하려면, 참조로 변수를 전달해야 합니다:
<?php
$num = 1;
$func = function() use (&$num)
{
$num = 2;
};
$func();
echo $num; // 2
?>
코드가 의도한 대로 작동하도록 수정하세요:
<?php
$num1 = 2;
$num2 = 3;
$func = function() use ($num1, $num2)
{
$num1 = $num1 ** 2;
$num2 = $num2 ** 2;
};
$func();
echo $num1;
echo $num2;
?>