|  | Posted by Marek Kilimajer on 05/13/05 05:24 
I believe it's mentioned somewhere in the manual you can't do that. func_get_arg() always return a copy. You can workaround this using an array.
 
 Robert Meyer wrote:
 > Hello,
 >
 > Using: PHP Version 5.0.3
 >
 > I build the following function:
 >
 >     function Set4HTMLOut() {
 >       $C = func_num_args();
 >       for ($I = 0; $I < $C; $I++) {
 >         $A = func_get_arg($I);
 >  echo 'I['.$I.']('.strlen($A).'): '.$A.'<br />';
 >         $A = htmlspecialchars($A);
 >  echo 'I['.$I.']('.strlen($A).'): '.$A.'<br />';
 >       }
 >     }
 >
 > And called it like this:
 >
 >      Set4HTMLOut(&$LName, &$LOrg, &$LWebSite, &$LPhones, &$LComments);
 >  echo '<br />After call:<br />'.
 >          'LName: '.$LName.'<br />'.
 >          'LOrg: '.$LOrg.'<br />'.
 >          'LWebSite: '.$LWebSite.'<br />'.
 >          'LPhones: '.$LPhones.'<br />'.
 >          'LComments: '.$LComments.'<br />';
 >
 > The "echo" statements in the Set4HTMLOut() function echos all the correct
 > data and proves the data was received correctly then altered by the
 > htmlspecialchars() function appropriately.  Notice that the caller passes
 > each variable as a reference.  Yet, the "echo" statement after the call
 > displays the data without any changes, like the first "echo" statement in
 > the Set$HTMLOut() function does.
 >
 > Is it not possible to pass variables by reference to a variable-length
 > parameter list?  Or am I doing something wrong?  If so, what?
 >
 > I have already built a work around.  I do not need any work arounds.  I just
 > think one should be able to pass variables by reference to a function that
 > accepts a variable-length parameter list.
 >
 > Regards
 >
 > Robert
 >
  Navigation: [Reply to this message] |