On 29 June 2011 15:53, Pascal COURTOIS <pascal.court...@nouvo.com> wrote: > Hi, > > Is there any way that a variable can be changed within a function without > passing it by reference ? > > I have a code like that: > > function myfunction($var) > { > > <some code> > print_r($var); => prints $var which is an object > anotherfunction($var); // call by value > print_r($var); => $var has changed > > } > > > I thought that since there's no reference in any way to the variable it > cannot be changed in the function. Am I wrong ?
For variables ... <?php $variable = 'rock'; function paper() { global $variable; $variable = __FUNCTION__; } function sissors() { $GLOBALS['variable'] = __FUNCTION__; } echo $variable, PHP_EOL; paper(); echo $variable, PHP_EOL; sissors(); echo $variable, PHP_EOL; ?> For objects, $var is always an alias to an object identifier which points to the same object... http://docs.php.net/manual/en/language.oop5.references.php -- Richard Quadling Twitter : EE : Zend : PHPDoc @RQuadling : e-e.com/M_248814.html : bit.ly/9O8vFY : bit.ly/lFnVea -- PHP Internals - PHP Runtime Development Mailing List To unsubscribe, visit: http://www.php.net/unsub.php