At 08:51 PM 12/31/2001 -0600, Anthony Ritter wrote: >............................................... ><? >function tax (&$Salary) > { > $Salary= $Salary - (($Salary/100)*20); > return $Salary; > } >$Salary=2500; >echo (tax($Salary)); // This displays $2000 >echo $Salary; // This also displays $2000 >?> >........................................ > >The question really was about the *ampersand* in the argument line which >supposedly changes the value of the variable to 2000 from 2500 because of >the ampersand symbol.
Yes, that is true. The "tax" function has the ampersand in the argument list, which means that any variable that you send to it gets passed by reference. This means that any changes to that variable that occur inside the function will actually affect the same variable that is in the scope of the main script. Without the ampersand, the function will only modify it's own local copy of the variable and leave the one in the main script unaltered. If you remove the ampersand from the above script and re-run it, then the output of the first echo statement should not change, but the second one will change to 2500 since the function will no longer be altering the variable in the main script. http://www.php.net/manual/en/language.references.pass.php Sorry if I'm not understanding your question... -- PHP Windows Mailing List (http://www.php.net/) To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] To contact the list administrators, e-mail: [EMAIL PROTECTED]