Αλλαγή εξωτερικών μεταβλητών σε ανώνυμες συναρτήσεις στην PHP
Οι εξωτερικές μεταβλητές, που αλλάζουν μέσα σε μια ανώνυμη συνάρτηση, δεν θα αλλάξουν έξω από αυτή:
<?php
$num = 1;
$func = function() use ($num)
{
$num = 2;
};
$func();
echo $num; // 1
?>
Για να εφαρμοστούν οι αλλαγές, πρέπει να περάσετε τη μεταβλητή by reference:
<?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;
?>