ตัวแปรก่อนเรียกใช้งานฟังก์ชันนิรนามใน 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();
?>