【問題】
下記のソースコードの出力結果はどうなるでしょうか
<?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では、変数の値にコピーオンライト方式を使っているので、関数の結果を参照で返す必要はない。結果を参照で返すと、値自身を返すのに比べて処理が遅くなってしまう。

コメント