ホームページ >バックエンド開発 >PHPの問題 >PHPでの値渡しと参照渡しの違いは何ですか

PHPでの値渡しと参照渡しの違いは何ですか

王林
王林オリジナル
2020-06-30 10:45:152958ブラウズ

php における値渡しと参照渡しの違いは、値渡しの場合、関数スコープ内で変数値のサイズを変更しても関数外の変数値には影響しませんが、参照渡しの場合は次のとおりです。 、関数のスコープ内では、変数値のサイズは影響を受けません。値への変更は関数の外部に反映され、メモリ アドレスは参照によって渡されます。

PHPでの値渡しと参照渡しの違いは何ですか

差分分析:

php 値の受け渡し: 関数のスコープ内で変数値のサイズが変更された場合、関数外の変数値には影響しません。

PHP 参照渡し: 参照渡しはメモリ アドレスを渡すため、関数スコープ内では、値への変更はすべて関数の外部に反映されます。

分析例:

値の受け渡し:

コピーと同じです。たとえば、私は家を持っています。私はあなたに建築資材をあげます。あなたは私とまったく同じ家を建てます。あなたが家で何をしても私には影響しません。私が家で何をするかは私には影響しません。何も影響しません。あなたに影響を与えますが、それらは互いに独立しています。

<?php  
$testa=1;
//定义变量a 
$testb=2;
//定义变量b  
$testb = $testa;
//变量a赋值给变量b  
echo $testb;
//显示为1  
?>

参照渡し:

C言語のポインタに似ており、感触はほぼ同じです。たとえば、私には家があります。私があなたに鍵を渡せば、私たち二人とも家に入ることができます。あなたが家の中で何をしても私に影響します。

<?php
$param2=1;        //定义变量2
$param1 = &$param2;   //将变量2的引用传给变量1
echo $param2;      //显示为1
$param1 = 2;       //把2赋值给变量1
echo $param2;      //显示为2
?>

値の受け渡しは、特に大きな文字列やオブジェクトの場合、時間がかかります。これは非常にコストのかかる操作になります。参照の転送、関数内のすべての操作は変数の転送と同じです。操作は効率的です。大きな変数を転送するとき!

関連する問題をさらに知りたい場合は、php 中国語 Web サイト にアクセスしてください。

以上がPHPでの値渡しと参照渡しの違いは何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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