Вам не нужен амперсанд, когда вы вызываете функцию, потому что вы уже объявили, что она принимает ссылку как параметр, используя амперсанд.
Так что вы просто напишите это:
function recursive(&$array)
{
recursive($array);
}
На заметку, как правило, следует избегать добавления амперсанда к вызовам функций .Это называется передачей по времени вызова.Это плохо , потому что функция может ожидать, что параметр будет передан по значению, но вы вместо этого передаете ссылку, таким образом, как вы запутываетесь в функции, не зная об этом.Как я уже говорил выше, функция неизменно будет принимать параметр по ссылке, если вы объявите его таковым.Таким образом, это делает ненужным переход по ссылке во время вызова.
В PHP 5.3.0 и новее передача по ссылке во время вызова заставляет PHP выдавать E_DEPRECATED
предупреждений, поскольку это устарело (справедливопоэтому).