関数へ引数として参照を渡す
2
<?php $test1 = 1; function test_func(&$val1){ $val1 ++; return; } test_func($test1); echo $test1;
上の例では引数として、変数の参照を渡しています。
本来、関数内での変数と関数外の変数は別物として扱われるので、関数内で値を変更しても外側の変数には影響を与えません。
関数を使用して、関数外の変数の値を変更したいときは、関数定義時の仮引数の前に&を付けます。
このようにすることで、引数として渡されるときに値ではなく、その変数のメモリ上の場所を渡し、関数内で値を変更したときに外側の変数の値を変化させることができるようになります。
このようにメモリ上の参照を渡すことをリファレンス渡しといいます。
本来、関数内での変数と関数外の変数は別物として扱われるので、関数内で値を変更しても外側の変数には影響を与えません。
関数を使用して、関数外の変数の値を変更したいときは、関数定義時の仮引数の前に&を付けます。
このようにすることで、引数として渡されるときに値ではなく、その変数のメモリ上の場所を渡し、関数内で値を変更したときに外側の変数の値を変化させることができるようになります。
このようにメモリ上の参照を渡すことをリファレンス渡しといいます。