値渡しと参照渡し
値渡しだとコピーされるので値は変更されない。
参照渡しだと中身を変更できる。
ただし、参照型のオブジェクトだと常に参照渡しの模様。
あえて参照渡しをする意味も無い気がします。
<?php $str = "hoge"; // 値渡し function mod($str){ $str .= "fuga"; } // 参照渡し function modref(&$str){ $str .= "hoge"; } mod($str); echo $str . "\n"; // => hoge modref($str); echo $str . "\n"; // => hogehoge // ただし、参照型だと常に参照渡し $obj = new stdClass(); $obj->x = "10\n"; echo $obj->x; // => 10 function mod2($obj){ $obj->x = "20\n"; } mod2($obj); echo $obj->x; // => 20
参照渡しについては下記によくまとまってる。
qiita.com