@Senseich

Почему массив неправильно передаётся в функцию без символа «&», при сортировке?

Я только начинающий и поэтому всех тонкостей не знаю. В интернете тоже не нашел конкретный ответ.
В общем есть массив, его нужно отсортировать, с сортировкой я разобрался, не понимаю почему массив неправильно передаётся в функцию без символа "&" (function bubble_sort(&$array)). Для чего он? Т.е. без него, я попробовал, масив выводится, но не сортируется.

Вот код:
<?php

function bubble_sort(&$array)
{
    for ($i=0; $i < count($array); $i++)
    {
        for ($y=($i+1); $y < count($array); $y++)
        {
            if ($array[$i] > $array[$y])
            {
                $c = $array[$i];
                $array[$i] = $array[$y];
                $array[$y] = $c;
            }
        }
    }
}

$arr = array(92, 64, 87, 18, 17, 66, 50, 88, 99, 77);

bubble_sort($arr);

echo '<pre>';
print_r($arr);
echo '</pre>';

?>
  • Вопрос задан
  • 183 просмотра
Решения вопроса 1
AStek
@AStek
Это передача аргумента по ссылке (php.net/manual/ru/language.references.pass.php). Если передавать не по ссылке то в функцию уходит копия данных, и с ней она работает, а снаружи они не изменяться.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@Zewkin
Я у мамы фронтэндер
Потому что без & в функцию передается не переменная, а её копия.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы