On Mon, Jul 07, 2003 at 06:20:42PM +0100, David Otton wrote: > On Mon, 7 Jul 2003 17:36:26 +0100, you wrote: > > >I want to write a function (as I have written in several other languages) that > >obtains it's arguments dynamically (using func_get_arg()) and then assigns to that > >argument. Think of the way that scanf() works -- that sort of thing. > > > >I have distilled what I want to do in the code below. foo adds 1 to all of it's > >arguments. > > > >function foo () { > > $count = func_num_args(); > > for($i = 0; $i <= $count; $i++) { > > $var = func_get_arg($i); > > // The following line should do it, but throws a syntax error > > &$var = $var + 1; > > } > >} > > > >$a = '1'; > >$b = '2'; > >$c = '3'; > > > >foo($a, $b, $c); > > > >What I am doing is quite different than the above (and more complex), but I will be > >able > >to achieve what I want if I can get the above to work. > > Well.... this would work > > function foo () { > $count = func_num_args(); > for($i = 0; $i < $count; $i++) { > $var = func_get_arg($i); > $var = $var + 1; > echo ($var); > } > } > > But I get the feeling you're trying to modify the elements in-place? Any > particular reason? > > If it's because you want to return multiple values from the function, > consider this: > > function foo () { > $args = array(); > for ($i = 0; $i < func_num_args(); $i++) { > $args[] = func_get_arg($i); > } > > $args = array_map (create_function ('$a','return($a+1);'), $args); > > return ($args); > } > > list ($a, $b, $c) = foo(1, 2, 3); > > echo ("$a, $b, $c");
No, the reason that I want to do it is for the same reason that sscanf() does it -- I want to change the values of the variables that are passed to it. -- Alain Williams #include <std_disclaimer.h> FATHERS-4-JUSTICE - Campaigning for equal rights for parents and the best interests of our children. See http://www.fathers-4-justice.org -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php