引数の参照渡し
当ページのリンクには広告が含まれています。
PHPスクリプトの関数などで利用する基本構文「引数の参照渡し」を紹介します。
引数の参照渡し
通常、関数内で変数の値を変更しても、関数外には適用されません。しかし、「引数の参照渡し」を使うと、関数内で変数の値を変更すると、その値が関数外にも適用されるようになります。
function 関数名( &引数変数名 ) { // 処理 }
関数の引数を参照渡しする場合は、このように「引数変数名」の前に「&」記号を付けます。
サンプルスクリプト
それでは 実際に「通常の引数」と「参照渡しの引数」をサンプルスクリプトで比較してみましょう。
通常の引数
まずは、通常の引数のサンプルスクリプトです。
<?php function hoge($a) { return ++$a; } $b = 1; echo hoge($b) ."\n"; echo $b ."\n"; ?>
実行結果です。
2 1
関数「hoge」に引数「$b」を渡すと関数からの戻り値は「2」になります。しかし参照渡しではないので変数「$b」の値は「1」であることがわかります。
参照渡しの引数
次は、参照渡しの引数のサンプルスクリプトです。
<?php function piyo(&$a) { return ++$a; } $b = 1; echo piyo($b) ."\n"; echo $b ."\n"; ?>
実行結果です。
2 2
関数「piyo」に引数「$b」を参照渡しをしています。関数からの戻り値は「2」に、参照渡しなので変数「$b」の値も「2」になることがわかります。