<?php
class aaa
{
private $var = array(1,2,3,4);

public function __construct(array &$yyy=null)
{
$this->var =& $yyy;
var_dump($this->var); //array(4) { [0]=> int(5) [1]=> int(6) [2]=> int(7) [3]=> int(8) }
}

public function bbb()
{
var_dump($this->var); //object(aaa)#1 (1) { ["var:private"]=> &object(aaa)#1 (1) { ["var:private"]=> *RECURSION* } }
}
}

$xxx = array(5,6,7,8,);
$ref =& $xxx;

$ref = new aaa($xxx);
$ref->bbb();
?>

これがなんでこうなるのか、詳しく
コンストラクタの内部では$this->varはちゃんと代入されてるのに、
他のメソッド内ではなんでダメ?