ホームページ  >  記事  >  バックエンド開発  >  PHP 関数は変数参照をどのように処理しますか?

PHP 関数は変数参照をどのように処理しますか?

WBOY
WBOYオリジナル
2024-04-11 08:15:01758ブラウズ

PHP 関数での変数の受け渡し方法: 値の受け渡し: 関数は変数値のコピーを受け取り、そのコピーを変更しても元の変数には影響しません。参照渡し: & 記号を使用すると、参照渡しが可能になり、関数は元の変数の値を直接変更できます。

PHP 函数如何处理变量引用?

PHP 関数と変数のリファレンス

PHP では、変数を関数パラメータとして渡すとき、変数の処理方法を知っておく必要があります。引用。変数参照には、値渡しと参照渡しの 2 種類があります。

値による受け渡し

デフォルトでは、PHP は値による受け渡しを使用します。これは、関数が変数値のコピーを受け取ることを意味します。このコピーを変更しても、元の変数の値には影響しません。

function test1($a) {
  $a += 10;  // 修改副本的值
}

$a = 10;
test1($a);
echo $a;  // 输出 10,原始值不受影响

参照渡し

参照渡しは、& シンボルを使用して変数参照を渡すことで実現できます。これにより、関数が元の変数の値を直接変更できるようになります。

function test2(&$a) {
  $a += 10;  // 修改原始变量的值
}

$a = 10;
test2($a);
echo $a;  // 输出 20,原始值被修改

実際的なケース

2 つの変数の値を交換するために使用される関数 swap() を考えてみましょう。

function swapByValue($a, $b) {
  // 值传递,交换副本的值
  $temp = $a;
  $a = $b;
  $b = $temp;
}

function swapByReference(&$a, &$b) {
  // 引用传递,直接交换原始变量的值
  list($a, $b) = [$b, $a];
}

$x = 10;
$y = 20;

swapByValue($x, $y);
echo "x = $x, y = $y\n";  // x = 10, y = 20

swapByReference($x, $y);
echo "x = $x, y = $y\n";  // x = 20, y = 10

最初の例では、コピーの値を変更しても元の変数に影響を与えないため、値渡しを使用したスワップは機能しません。 2 番目の例では、参照渡しを使用して交換を実装し、それによって元の変数の値を正常に変更します。

以上がPHP 関数は変数参照をどのように処理しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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