$a = $b = 0;

In the above code, are both $a and $b assigned the value of 0, or is $a just referencing $b?

Accepted Answer

With raw types this is a copy.

test.php

$b = 3; 

var_dump($a);
var_dump($b);
?>

Output:

int(0) 
int(3)

With objects though, that is another story (PHP 5)

test.php

class Obj
{ 
    public $_name;
}

$a = $b = new Obj();

$b->_name = 'steve';

var_dump($a);
var_dump($b);

Output

object(Obj)#1 (1) { ["_name"]=> string(5) "steve" } 
object(Obj)#1 (1) { ["_name"]=> string(5) "steve" }
Written by Bob_Gneu
This page was build to provide you fast access to the question and the direct accepted answer.
The content is written by members of the stackoverflow.com community.
It is licensed under cc-wiki