In regards to: http://us2.php.net/manual/en/language.references.pass.php#45310
Can someone please explain to me why this is the case?
<?php
$arr = array('something' => 'else', 'goes' => 'here');
function changeIt(&$vals){
$vals = array_map('strtoupper', $vals);
}
print_r($arr); // lower
changeIt($arr);
print_r($arr); // upper
class test {
static public function changeIt(&$arr){
$vals = array_map('strtolower', $arr);
}
}
print_r(test::changeIt($arr)); // lower -- doesn't work
call_user_func('changeIt', $arr);
print_r($arr); // upper -- might work, data is already upper
call_user_func(array('test', 'changeIt'), &$arr);
print_r($arr); // lower -- doesn't work!!!
call_user_func(array('test', 'changeIt'), $arr);
print_r($arr); // lower -- doesn't work!!!
call_user_func_array(array('test', 'changeIt'), array(&$arr));
print_r($arr); // lower -- doesn't work
Anyone know of a way around having to explicitly call the function?