Я бы посоветовал вам взглянуть на:
PHP: передача по ссылке или передача по значению
Это легко демонстрирует, почему вам нужно передавать переменныепо ссылке (&
).
Пример кода:
function pass_by_value($param) {
push_array($param, 4, 5);
}
$ar = array(1,2,3);
pass_by_value($ar);
foreach ($ar as $elem) {
print "<br>$elem";
}
Приведенный выше код выводит 1, 2, 3. Это потому, что массив передается как значение.
function pass_by_reference(&$param) {
push_array($param, 4, 5);
}
$ar = array(1,2,3);
pass_by_reference($ar);
foreach ($ar as $elem) {
print "<br>$elem";
}
Приведенный выше код выводит 1, 2, 3, 4, 5. Это потому, что массив передается как ссылка, то есть функция (pass_by_reference) не манипулирует копией переданной переменной, но фактическая переменная сама.