Непосредственно, это может быть невозможно - однако, если у вас есть контроль как над функцией, которую вы реализуете , так и кода, который вызывает это - тогда есть один рабочий вокруг этого вы могли бы найти подходящий.
Вы бы согласились с тем, чтобы встроить указанную переменную в объект? Код выглядел бы (несколько) так, если бы вы это сделали.
function toBeCalled( $par_ref ) {
$parameter = $par_ref->parameter;
//...Do Something...
$par_ref->parameter = $parameter;
}
$changingVar = 'passThis';
$parembed = new stdClass; // Creates an empty object
$parembed->parameter = array( $changingVar );
call_user_func_array( 'toBeCalled', $parembed );
Видите ли, переменная объекта в PHP - это просто ссылка на содержимое объекта - так что если вы передаете объект в функцию, любые изменения, которые Функция заставляет содержимое объекта отражаться в том, к чему имеет доступ и вызывающая функция.
Просто убедитесь, что вызывающая функция никогда не выполняет присваивание переменной объекта самой - или это приведет к тому, что функция, в основном, потеряет ссылку. Любой оператор присваивания, который делает функция, должен быть строго для содержимого объекта.