Pembolehubah Sebelum Panggilan Fungsi Tanpa Nama dalam PHP
Katakan kita mempunyai kod berikut:
<?php
$pow = 2;
$func = function($num) use ($pow)
{
return $num ** $pow;
};
echo $func(4);
?>
Kod di atas berfungsi,
kerana pembolehubah $pow
ditulis sebelum pengisytiharan fungsi.
Walau bagaimanapun, jika kita meletakkan pengisytiharan
pembolehubah sebelum panggilan fungsi,
semua akan berhenti berfungsi:
<?php
$func = function($num) use ($pow)
{
return $num ** $pow;
};
$pow = 2;
echo $func(4);
?>
Masalah boleh dibaiki jika kita menghantar pembolehubah melalui rujukan:
<?php
$func = function($num) use (&$pow)
{
return $num ** $pow;
};
$pow = 2;
echo $func(4);
?>
Betulkan kod supaya ia berfungsi seperti yang dirancang:
<?php
$func = function() use ($num1, $num2)
{
return $num1 + $num2;
};
$num1 = 2;
$num2 = 3;
echo $func();
?>