Intereting Posts
PHP – длина строки, содержащей emojis / специальные символы Admin SDK, Directory API, Users: list – Какие-нибудь примеры PHP о том, как это сделать? Сколько переменных приходится на многие при хранении в _SESSION? Предупреждение: mysql_fetch_array () ожидает, что параметр 1 будет ресурсом, boolean задан в проблеме con el wile Почему silverstripe устанавливает мои таблицы страниц как устаревшие Как проверить 17 цифр в массиве номеров VIN из формы в php? Чтение файла excel xlsx с помощью simplexlsx в php Завершение сеанса Codeigniter php: spoofing referrer? В новой вкладке открывается гиперссылка Yii CGridView Удаление комментариев в формате HTML с помощью PHP, но уход из условий PHP SQLite ATTACH «нет такой таблицы» исключение Загрузка данных из базы данных с помощью php и чистого ajax в текстовое поле невозможно связать адрес : ошибка php Регулярное выражение PHP для фильтрации URL-адресов из определенных доменов для использования в плагине vBulletin

PHP: call_user_func_array: передать по ссылке

Функция ниже генерирует ошибку, когда функция содержит ссылочные аргументы, например:

function test(&$arg, &$arg2) { // some code } 

Теперь я не могу использовать call_user_func_array для вышеприведенной функции, он будет генерировать ошибку.

Как решить эту проблему?

Мне нужно использовать call_user_func_array .

Также предположим, что я не знаю заранее, передаются ли они по ссылке или передаются по значению.

благодаря

Solutions Collecting From Web of "PHP: call_user_func_array: передать по ссылке"

Большое обходное решение было опубликовано на http://www.php.net/manual/de/function.call-user-func-array.php#91503

 function executeHook($name, $type='hooks'){ $args = func_get_args(); array_shift($args); array_shift($args); //Rather stupid Hack for the call_user_func_array(); $Args = array(); foreach($args as $k => &$arg){ $Args[$k] = &$arg; } //End Hack $hooks = &$this->$type; if(!isset($hooks[$name])) return false; $hook = $hooks[$name]; call_user_func_array($hook, $Args); } 

Фактический взлом окружен комментариями.

При сохранении параметров в массиве убедитесь, что вы сохраняете ссылку на эти параметры, он должен работать нормально.

То есть:

 call_user_func_array("test", array(&param1, &param2));