値渡しと参照渡し

値渡し

  • 値そのものを受け渡しすること
  • 値を関数に渡す
  • 関数内で値を上書きしても、呼び出し側(関数外)の変数には影響がない
  • 互いに別物で一方の変更はもう一方へ影響しない
<?php

$a = 'suki';

test($a);

function test($b)
{
    echo $b; //suki
}


参照渡し

  • 値の格納先の参照情報を受け渡すこと
  • アンパサイドを変数の前に記述する
  • アクセス元(関数内)の値を必ず参照するようになる
  • 互いに同じものを見ており、一方の変更はもう一方へ影響する
<?php

function test($b)
{
    $b = 'kirai';
}

$a = 'suki';
test(&$a);
echo $a; //kirai

$a = 'suki';
test($a);
echo $a; //suki
<?php

function test(&$b)
{
    $b = 'kirai';
}

$a = 'suki';
test($a);
echo $a; //kirai

$a = 'suki';
test(&$a);
echo $a; //kirai