PHP では、パラメータを渡す方法が 2 つあります。値渡しと参照渡しです。値による受け渡しがデフォルトの方法です。つまり、関数内のパラメーターを変更しても、関数の外部の変数には影響しません。参照渡しでは変数のアドレスが関数に渡されるため、パラメーターの変更は呼び出し側関数の変数に影響します。
PHP では、参照を渡すことを示すには & 記号を使用します。以下に、参照渡しの使用方法を示すサンプル コードを示します。
function addOne(&$num) { $num++; } $num = 10; addOne($num); echo $num; // 输出 11
上記のコードでは、関数 addOne
は &
表記を使用して参照します。その引数 $num
、つまり $num
への変更は、関数を呼び出す変数に影響します。関数内では $num
に 1 を加えていますが、関数呼び出し後、元の変数 $num
の値も変更されています。
次のコードをもう一度見てください:
function swap(&$a, &$b) { $tmp = $a; $a = $b; $b = $tmp; } $a = 1; $b = 2; swap($a, $b); echo $a; // 输出 2 echo $b; // 输出 1
この例は、参照の受け渡しを使用して 2 つの変数の値の交換を完了する方法を示しています。関数 swap
は 2 つのパラメーター $a
と $b
を受け取り、参照によって渡されます。関数内では、$a
の値を $tmp
に保存し、$a
の値を $b
に設定します。 ##$b の値は
$tmp に設定されます。
swap 関数を呼び出した後、元の変数
$a と
$b の値が交換されます。
&$var を使用して関数の結果を返すこともできます。
function &getRef() { $num = 10; return $num; } $numRef = &getRef(); $numRef = 20; echo getRef(); // 输出 20
getRef は、
$num 変数への参照を返します。
getRef 関数を呼び出した後、参照を
$numRef# に割り当てていることがわかります。 ## 変数、$numRef
の値が変更されます。これにより、元の $num
変数の値も変更されます。 変数の値が他のコードによって変更され、プログラムの可読性と保守性に影響を与える可能性があるため、参照転送を使用する場合は注意が必要です。したがって、必要な場合にのみ参照渡しを使用することをお勧めします。
以上がPHPで参照を渡す方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。