Проблема с передачей функции параметра как reference

Khan

Guest
Проблема с передачей функции параметра как reference

Натолкнулся на камень. Очень нужна функция, которая будет вызывать другую функцию, которой необходимо передать параметр как reference. call_user_func() отказался работать. Тут же спрашивается, почему?

Если у кого-нибудь есть соображения по этому поводу, то очень прошу поделиться решением.

И ещё... я начал было функцию вызова писать, но вот функции, которая бы возвращала имена всех переменных, переданной функции не нашёл. Это тоже, видимо, ещё один камень.

Простенький пример на тему:
PHP:
function foo(&$var)
{
	$var=!$var;
}

$a=false;
foo($a); // это работает, of course
call_user_func('foo', $a); // а вот это нет, т.е. данные передались как value.
Спасибо.
 

Khan

Guest
Это будет работать только с allow_call_time_pass_reference = On, который по дефолту Off.
 

Khan

Guest
Автор оригинала: tony2001
PHP:
function foo(&$var) 
{ 
    $var=!$var; 
} 

$a=false; 
$function = 'foo';
$function($a);
Это очевидно. Но если неизвестно кол-во передаваемых параметров?
 

tony2001

TeaM PHPClub
например, переделать функции так, чтобы можно было передавать массив параметров.
 

Khan

Guest
Автор оригинала: tony2001
например, переделать функции так, чтобы можно было передавать массив параметров.
Они пройдут как value. Уже писал такую функцию - на практике оказалось именно так.
 

tony2001

TeaM PHPClub
PHP:
function foo(&$var) 
{ 
    $var[0]++;
} 

$b = 0;
$a = Array (&$b); 

foo($a); 

call_user_func('foo', $a);

var_dump($b);
var_dump($a);
вот это работает как надо.
или мне кажется?
 
Сверху