• ベストアンサー

SCRIPTの意味を教えてください

PHPにて実体参照について調べています。 以下のソースになんとなく興味が沸くのですがどういう処理をするためのものなのかよく分かりません。よかったら教えてください。 function append (&$str1, $str2="") { if (!isset($str1) ) { $str1=""; } $str1 .= $str2; }

質問者が選んだベストアンサー

  • ベストアンサー
  • sisya
  • ベストアンサー率39% (97/244)
回答No.1

まず関数の説明として appendと言う関数は一つもしくは二つの引数をもらい $str1がnullなら空文字をセットし その後$str1の後ろに$str2の値を追加します。 この時「&」が付いていなければ、 関数の呼び出し元は何の変化もありませんが、 「&」付きの場合は呼び出し元の値は$str1の値となる訳です。 例: $tmp1 = "foo"; $tmp2 = "bar"; append($tmp1, $tmp2); print $tmp1; 出力結果: foobar 用途として関数内で参照しかしない変数で 大きな配列などを渡す時メモリを節約する用途などでも 試用されますが、とりあえず関数内で変更すると 呼び出し元の変数に影響がある引渡し方だと 覚えれば問題無いかと思います。

関連するQ&A