【問題】
下記のソースコードの出力結果はどうなるでしょうか
<?php $test = array("aaa","bbb","ccc"); function & findOne($a){ global $test; return $test[$a]; } $test2 = & findOne(1); $test2 = "ddd"; var_dump($test);
【答え】
array(3) { [0]=> string(3) "aaa" [1]=> &string(3) "ddd" [2]=> string(3) "ccc" }
PHPでは、変数の値にコピーオンライト方式を使っているので、関数の結果を参照で返す必要はない。結果を参照で返すと、値自身を返すのに比べて処理が遅くなってしまう。
コメント