・phpのオブジェクトはデフォルトでは参照渡しとなる
http://php.net/manual/ja/language.oop5.references.php
・もうひとつ。関数の戻り値の参照渡しについて。
<?php class HelloWorld { var $value = "default"; function &getValue() { return $this->value; } } $helloWorld = new HelloWorld(); $v =& $helloWorld->getValue(); $v = "HelloWorld"; print $helloWorld->value;
これで「HelloWorld」と出力される。関数「&getValue」の「&」とメソッド実行の戻り値「=&$helloWorld->getValue();」の「&」のどちらが抜けても参照渡しにはならない。その場合は値渡しとなり「default」と出力される。
http://d.hatena.ne.jp/cloned/20060510
・foreachの参照渡しについて
http://php.net/manual/ja/control-structures.foreach.php