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]

Reply via email to