PHP - call_user_func reference
PHP function call_user_func()
does not pass parameter variable as reference. the code below won't work as expected.
From PHP documentation:
Note that the parameters for
call_user_func()
are not passed by reference.
<?php
function increment(&$var)
{
$var++;
}
$a = 0;
call_user_func('increment', $a);
echo $a."\n"; // $a is equals to 0
In order to solve this problem call_user_func_array()
must be used instead.
<?php
function increment(&$var)
{
$var++;
}
$a = 0;
call_user_func_array('increment', array(&$a));
echo $a."\n"; // $a is equals to 1