ホームページ  >  記事  >  バックエンド開発  >  PHPで参照を渡す方法

PHPで参照を渡す方法

PHPz
PHPzオリジナル
2023-05-07 10:02:07737ブラウズ

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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。