On 29 June 2011 15:53, Pascal COURTOIS <[email protected]> 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