Variable vor dem Aufruf einer anonymen Funktion in PHP
Nehmen wir an, wir haben den folgenden Code:
<?php
$pow = 2;
$func = function($num) use ($pow)
{
return $num ** $pow;
};
echo $func(4);
?>
Der obige Code funktioniert,
da die Variable $pow
vor der Funktionsdeklaration geschrieben wurde.
Wenn wir jedoch die Deklaration der Variable
vor den Funktionsaufruf stellen,
hört es auf zu funktionieren:
<?php
$func = function($num) use ($pow)
{
return $num ** $pow;
};
$pow = 2;
echo $func(4);
?>
Das Problem kann behoben werden, indem man die Variable als Referenz übergibt:
<?php
$func = function($num) use (&$pow)
{
return $num ** $pow;
};
$pow = 2;
echo $func(4);
?>
Korrigieren Sie den Code, damit er wie beabsichtigt funktioniert:
<?php
$func = function() use ($num1, $num2)
{
return $num1 + $num2;
};
$num1 = 2;
$num2 = 3;
echo $func();
?>