Sobes.tech
Back to questions
Junior — Middle
85

Какий результат получится, если передать массив в функцию и изменить его внутри функции?

Companies where asked
АО Тривио

Answer from AI

sobes.tech 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);

Теперь изменения будут сохранены в исходном массиве.