PHPにおける値の受け渡しと参照の受け渡しの違い
値による変数の受け渡しとは、ある変数の値を別の変数に「渡す」ことを意味します。
データを転送するには、値の転送と参照の転送の 2 つの方法しかありません。デフォルトでは、PHP は値の受け渡しを使用します。
これら 2 つの転送方法の違いを見てみましょう:
値の転送:
は、右側の変数の「データ値」のコピーを作成し、それを変数に代入します。左側の変数
値渡しプロセス中、呼び出される関数の仮パラメータは呼び出される関数のローカル変数として扱われます。つまり、スタック内にメモリ空間が開かれ、値を格納します。呼び出し関数によって入力された実際のパラメータ。つまり、実際のパラメータのコピーになります。値転送の特徴は、呼び出される関数の仮パラメータに対する操作はすべてローカル変数として実行され、呼び出し元関数の実パラメータ変数の値には影響を与えないことです。
例:
$v1 = 1; $v2 = $v1;
値が渡された後、2つの変数は互いに影響を与えず、互いに独立しています
<?php //值传递 $v1 = 10; $v2 = $v1; echo "v2的值为:".$v2;//10 $v1 = 11; echo "<br>v2的值为:".$v2;//10
参照渡し:
は参照関係を渡すことです右側の変数と左側のデータの間 変数
の参照渡しプロセス中、呼び出される関数の仮パラメータもローカル変数としてスタック内のメモリ空間を開きますが、実際のパラメータはこのとき、呼び出した関数による変数のアドレスが格納されます。仮パラメータに対する呼び出された関数の操作はすべて、間接アドレス指定として処理されます。つまり、呼び出し関数内の実際のパラメータ変数には、スタックに格納されているアドレスを介してアクセスされます。このため、呼び出される関数が仮パラメータに対して実行する操作は、呼び出し元の関数に影響を与えます。
<?php //引用传递 $v1 = 10; $v2 = &$v1; echo "v2的值为:".$v2;//10 $v1 = 11; echo "<br>v2的值为:".$v2;//11
概要:
ここで検討する主な問題は、値渡しと参照渡しに似た問題です。値を渡すことはメモリ空間を再度開くことであり、これは元の値をコピーすることと同等であり、元の値とは独立していることを理解してください。参照 (ポインター) を渡すと、元のメモリー ブロックにポインターが追加されるだけです。参照の値が変更されると、ポイントされたメモリー アドレスの値が変更され、ポイントされたすべての参照が変更されます。
以上がPHPで値を渡すには、値渡しと参照渡しの2つの方法があります。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。