PHP5  初めての 参照、オブジェクト
$a = 111;  とは? ① メモリを確保して数字の 111 を実体化する。 ② これを  $a  と名づける。 <integer>  111 111 $a ①  ②  オレンジの Box はメモリ! 値を入れておくためには必ず必要! 変数名は、メモリに付けた名前です! 実体はメモリです!
$b = $a;  とは? ① メモリを確保して、数字の 111 をコピーする。 ② これを  $b  と名づける。 <integer>  111 111 $a ①  ②  <integer>  111 $b コピー  メモリを複製します。 複製したので $a と $b は別物になります。
$c = &$a;  とは? ① $a の参照を $c とする。( $a の別名を $t とする) <integer>  111 111 $a $c 参照  ①  メモリは複製しません! 別名をつけるだけです! つまり、実体は同じなんです!
$test = new Test(); ① メモリを確保して Test クラスを実体化する。 ② これを handle#999 として管理する。 ③ これを  $test  と名づける。 <Test>  $a : 1 $b : 2 new Test() <handle> #999  $test  ①  ②  ③  オブジェクトの場合、 PHP5 から Handle で 管理されます!
test_write($test); 値渡し   test_write2(&$test); 参照渡し ① test_write($test) は、 $t = $test  と考えればよい。    $test の実体である handle をコピーする。 ②  test_write2($test) は、 $t = &$test  と考えればよい。    $test の参照を $t とする。( $test の別名を $t とする) <Test>  $a : 1 $b : 2 new Test() $test  $t  <handle> #999  test_write($t)  $t  test_write2(&$t)  コピー  参照  ①  ②  <handle> #999