Доброе время суток формучане!
Разбирался тут со ссылками и объектами в пэхе, и вот столкнулся со следующей странностью:
<?php
class test{
    public $a = 3;
    public $b = NULL;
    function __construct(){
        $this->b =& $this->a;
    }
}
$vvv = new test();
$v = clone $vvv;
$vvv->a = 434;
echo $vvv->a, PHP_EOL;
echo $v ->a, PHP_EOL;
Так вот, этот код выводит "434" и "434"... как так?
т.е. я создаю клон объекта стандартной логикой, которая копирует значение каждого свойства одного экземпляра в одноименное свойство другого экземпляра... верно?
Таким образом:
vvv = {
  a = 434,
  b - ссылается на "vvv.a"
};
v = {
  a = 434,
  b - в начальный момент времени ссылалась на "v.a", но после клонирования стала ссылаться на "vvv.a" (по крайней мере должна)
};
но почему изменение "v.a" влияет на "vvv.a"? ведь они не связаны ссылкой!
аналогично, если я даже изменю по ссылке "vvv.b = 111", то и "v.b" и "v.a" будут выдавать это-же изменение...