PHP 関数のパラメーターを渡すには 2 つの方法があります。 コピー パス: デフォルトのメカニズム。関数はパラメーター値のコピーを受け取り、変更は元の変数に影響を与えません。参照パス: 関数は元の変数への参照を受け取り、変更は元の変数に直接影響します。
#PHP 関数パラメータ受け渡しメカニズム
PHP では、関数にパラメータを渡すときに、次の 2 つの受け渡しメカニズムがあります。コピー パス
関数パラメーターは、デフォルトで値渡しメカニズムを採用しています。つまり、パラメーター値のコピーが関数内で作成されます。コピーへの変更は関数のスコープ内の変数にのみ影響し、関数外の元の変数には影響しません。function add($a, $b) { $a = $a + $b; // 只修改函数内部的 $a 副本 } $x = 1; $y = 2; add($x, $y); // 传值到函数 echo $x; // 仍为 1,未受函数内更改的影响
参照パス
参照パス メカニズムは、パラメータの前に& 記号を追加することで実装できます。このように、関数の内部操作は値のコピーではなくなり、元の変数を直接変更します。
function add_ref(&$a, &$b) { $a = $a + $b; // 直接修改原变量 } $x = 1; $y = 2; add_ref($x, $y); // 传引用到函数 echo $x; // 现在为 3,因函数内修改了原变量
実際のケース:
一般的な例は、テーブル データのページング関数です。現在のページ番号やページごとのレコード数などのパラメーターをページング関数に渡す必要があります。値渡しメカニズムが使用されている場合、ページング関数はパラメーターのコピーに対してのみ動作し、データベース クエリ ステートメントのオフセットや制限などの設定を変更することはできません。したがって、この場合、ページング関数が元のパラメータを変更できるようにするために、参照渡しメカニズムを使用する必要があります。rree
以上がPHP関数のパラメータはどのように渡されるのでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。