Robert Enyedi wrote:
Hi,

I've been studying the PHP reference mechanism (with PHP 5.2.1) and I'm unsure if the following behavior is normal.

This code works as expected:

    $a = 2;
    $b = &$a;
    //$c = &$a;
    $c = $b;
    $a = 1;

    echo $c."\n"; // Prints "2" as expected

but this one does not:

    $a = 2;
    $b = &$a;
    $c = &$a;
    $c = $b; // Should overwrite the previous assignment, so $c
         // should get a copy of $b (and NOT a reference)
    $a = 1;
echo $c."\n"; // I would expect "2", but prints "1"

Could anyone please clarify why this happens?

Regards,
Robert

This is because PHP5 has changed the default behaviour and $a = $b is now call by reference as standard.

That's my understanding of it.

Martin

--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to