エンジニアのひよこ_level10

毎日更新してた人。たまに記事書きます。

PHPの参照渡しのメモ【99日目】

参照サイト

PHP: リファレンスとは? - Manual

PHP: リファレンス渡し - Manual

伝える内容候補

極力参照渡しでメソッド作らない方が良い
普通のメソッドは、値を直接書き換えてるわけじゃないよ。コピーを使ってるんだよ。
メモリの存在←ここまで説明するとなると骨が折れる気がする

参照渡しを使うとどうなるか

引数に渡した変数の値が変更される。

使う側が予想していない値に変わる可能性がある。

普通の関数との違い

参照渡しするメソッドは、破壊的なメソッドと呼ばれる

function swap($a, $b)
{
  $temp = $a;
  $a = $b;
  $b = $temp;
}
function swap2(&$a, &$b)
{
  $temp = $a;
  $a = $b;
  $b = $temp;
}

2つの違いは、メソッドを実行した後、使用した変数が変化していること

普通のメソッドの場合

$x = 1;
$y = 2;

swap($x, $y);
echo $x;
echo $y;

1,2の順で表示されて、$xと$yの値は変更されない。

$x = 1;
$y = 2;

swap2($x, $y);
echo $x;
echo $y;

2、1の順で表示されて、数値が入れ替わっているのがわかる。

日記

来週会社で説明する予定の参照渡しについて。

何を説明しなきゃいけないか、がまとまらない。

説明したい内容が固まれば、それに合わせて説明の内容が変わるので、それをよく考えなきゃ。

今の所