Всем привет. Столкнулся с небольшой проблемой передачи параметров в функцию по ссылке (by ref). Есть некая библиотечная функция: Код (Text): function func1($var1, [&$refvar1][, &$refvar2][....] ); Я хочу сделать обертку вокруг нее чтобы проверять корректность передаваемых данных плюс частично поменять логику так, как надо мне. Т.е. создать функцию Код (Text): function my_func1($var1, $var2, $var3, [&$refvar1][, &$refvar2][....] ) { // ... } Проблема в том, что имеющийся механизм работы с переменным кол-ом параметров func_num_args()/func_get_arg(N) возвращает только значения переменных, ссылку получить невозможно: Собственно, вопрос в том, можно ли такое сделать каким-либо образом, может есть какая возможность получить void** на аргументы ? И если да, то покажите куда рыть. Зараннее спасибо всем небезразличным!
Собственно никак, тебе придётся напрямую использовать аргументы, которые ты хочешь передать по ссылке.
Ну тупой, но надежный, метод я уже придумал. Правда, он из серри throughass, однако работать будет 100%. Хочется "по-научному" сделать, используя, возможно, нестандартный подход. Вопрос - куда копать.
Код (Text): <? function system_routine(&$var) { $var = 'SUCCESS!'; } function my_routine($var) { system_routine($var[0]); } $x = 'Failed'; my_routine(array(&$x)); echo $x . "\n"; ?> Действительно выводит 'SUCCESS!', спасибо, хотя для меня такой вариант оказался неожиданностью. Вариант имеет право на жизнь, хотя не очень красиво передавать массивом переменные, но если выхода нет, что ж делать. Может кто-то еще что подскажет?