Hi, Monday, May 8, 2006, 8:46:38 PM, you wrote: CJ> Tom Rogers wrote: >> Here is a cutdown version of a class loader I use, It works for php4 and >> php5 and with references. It should be easy to modify. CJ> [...] CJ> Sorry, this does not work with references as func_get_args() copies the CJ> arguments passed, rather than keeping them as references. This means CJ> that the $variable1, $variable2, etc. variables are only references to CJ> the copy made with func_get_args(), rather than to the variables passed CJ> to the first function. CJ> Chris Here is a modified version using arrays (tested php4/5) <?php $a = 1; $b = 1; function test_vars($function, $array){ $num_args = count($array); $vars = $function.'('; if($num_args > 0) { for ($i=0; $i < $num_args; $i++) { $vars .= ($i > 0)? ',':''; $varname = 'variable'.$i; $$varname =& $array[$i]; $vars .= "\$$varname"; } } $vars .= ');'; eval($vars); } function test(&$a){ $a++; } function test2(&$a, &$b){ $a++; $b++; } echo "$a\n"; test($a); echo "$a\n"; test_vars('test',array(&$a)); echo "$a\n"; test_vars('test2',array(&$a,&$b)); echo "$a : $b\n"; // a test on a function we have no control over $string = "This is a test"; $match = array(); test_vars('preg_match',array('/(\w+) (\w+) (\w+) (\w+)/',$string,&$match)); print_r($match); -- regards, Tom -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php