PHPの値渡しと参照渡しの違い
PHPでは、値渡しと参照渡しという2種類の関数の引数の渡し方があります。
- 値渡し:関数が受け取っているのは実引数の値のコピーで、関数内で引数にどんな変更を加えても、外部の実引数には影響しない。
ネイティブな日本語で言い換えた文の 1 つの例:
function changeValue($param) {
$param = 10;
}
$value = 5;
changeValue($value);
echo $value; // 输出5
- 関数に渡されるのは、実引数のメモリアドレスです。関数内での引数の変更は、外部の実引数に影響します。
例のコードは、ネイティブな日本人による日本語のパラフレーズです。
function changeValue(&$param) {
$param = 10;
}
$value = 5;
changeValue($value);
echo $value; // 输出10
参照渡しを用いることで、関数内部で外部の変数の値を変更できます。これは、関数内でグローバル変数の値を変更したり、関数内で配列やオブジェクトの値を変更する必要がある場合などに便利です。ただし、参照渡しでは意図しない変更が発生する可能性があるため、注意して使用する必要があります。