Junior — Middle
Какъв ще бъде резултатът, ако предадете масив на функция и го промените вътре в нея?
sobes.tech AI
Отговор от AI
В PHP массивы передаются в функции по значению, то есть создаётся копия массива. Если внутри функции изменить массив, то эти изменения не повлияют на исходный массив вне функции.
Пример:
function modifyArray($arr) {
$arr[] = 'новый элемент';
print_r($arr);
}
$original = ['элемент1', 'элемент2'];
modifyArray($original);
print_r($original);
Вывод будет:
Array
(
[0] => элемент1
[1] => элемент2
[2] => новый элемент
)
Array
(
[0] => элемент1
[1] => элемент2
)
Если нужно изменить исходный массив внутри функции, его нужно передавать по ссылке, используя &:
function modifyArrayByReference(&$arr) {
$arr[] = 'новый элемент';
}
$original = ['элемент1', 'элемент2'];
modifyArrayByReference($original);
print_r($original);
Теперь изменения будут сохранены в исходном массиве.