ホームページ  >  記事  >  バックエンド開発  >  PHP 関数呼び出しにおける値渡しと参照渡しの謎を解く

PHP 関数呼び出しにおける値渡しと参照渡しの謎を解く

WBOY
WBOYオリジナル
2024-04-16 14:39:011047ブラウズ

PHP の関数呼び出しは、値または参照によって渡すことができます。デフォルトでは値渡しで、関数はパラメーターのコピーを受け取り、それを変更しても元の値には影響しません。参照渡しは、パラメーターの前に & 記号を追加することで宣言され、関数は渡された変数を直接変更します。参照渡しは、配列要素などの外部変数を変更する関数が必要な場合に便利です。

揭秘 PHP 函数调用中的值传递和引用传递

PHP 関数呼び出しでの値の受け渡しと参照の受け渡しをわかりやすくする

値の受け渡し

PHP では、デフォルトで関数呼び出しに値の受け渡しを使用します。 。これは、値が引数として関数に渡されると、関数は値のコピーを取得することを意味します。このコピーに加えられた変更は、元の値には影響しません。

function addValue($number) {
  $number += 10;
}

$value = 10;
addValue($value);
echo $value; // 输出:10

上の例に示すように、$valueaddValue 関数に渡されると、関数は変数のコピーを取得します。関数内の変更はコピーにのみ影響し、元の変数には影響しません。

参照渡し

元の変数を直接変更する関数が必要になる場合があります。この場合、参照渡しが使用できます。参照を宣言するには、パラメータの型宣言の前に & 記号を追加します。

function addReference(&$number) {
  $number += 10;
}

$value = 10;
addReference($value);
echo $value; // 输出:20

上の例に示すように、addReference 関数の $number パラメータは参照として宣言されています。これは、関数が渡された変数を直接変更することを意味します。

実用的なケース

参照渡しを使用すると、特定のタスクを簡素化できます。たとえば、ユーザー データを含む配列があり、それを関数で変更する必要があるとします。

$users = [
  [
    'id' => 1,
    'name' => 'John Doe',
  ],
];

function changeName(&$user, $newName) {
  $user['name'] = $newName;
}

changeName($users[0], 'Jane Doe');
echo $users[0]['name']; // 输出:Jane Doe

$user パラメータを参照として宣言すると、changeName 関数は配列内の元の要素を直接変更できます。

結論

PHP の値渡しと参照渡しを理解することは、効率的で保守可能なコードを作成するために重要です。参照渡しを使用すると、変数の不必要なコピーを回避し、関数の外で変数を直接変更できます。

以上がPHP 関数呼び出しにおける値渡しと参照渡しの謎を解くの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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