В PHP использовался следующий шаблон:
function foo($arr)
{
// modify $arr in some way
return $arr;
}
Затем это можно было бы вызвать с использованием значения pass-by-value:
$arr = array(1, 2, 3);
$newarr = foo($arr);
или по ссылке:
$arr = array(1, 2, 3);
foo(&$arr);
но "Переадресация времени звонка устарела". Изменение сигнатуры функции:
function foo(&$arr)
будет обрабатывать случай передачи по ссылке, но нарушит двухцелевой характер исходной функции, поскольку пропускная способность больше невозможна.
Есть ли способ обойти это?