php値伝達と参照伝達の違い

4197 ワード

   :      ,        ,               .

: , , , .

 
値転送(例demo)
 1 php
 2 function test($i){
 3     $i++;//  i    1
 4     $a=$i;//  i     a
 5     return $a;//    a
 6 }
 7 
 8 $i=5;//    i
 9 echo $i.'
';// :5 10 echo test($i).'
';// :6 11 echo $i;// :5

 
リファレンス転送(例demo)
 1 php
 2 function test(&$i){
 3     $i++;//  i    1
 4     $a=$i;//  i       a
 5     return $a;//    a
 6 }
 7 
 8 $i=5;//    i
 9 echo $i.'
';// :5 10 echo test($i).'
';// :6 11 echo $i;// :6

 
適用シーン:
(1)値が伝達する場合、phpは値をコピーする必要がある.
(2)参照伝達は値をコピーする必要がないため、参照伝達は一般的に大きな文字列やオブジェクトに用いられる.
メリットとデメリット:
(1)伝達に時間がかかる、特に大きな文字列やオブジェクトにとっては大きなコストとなる.
(2)伝達参照は、関数内のいずれの操作も伝達変数に対する操作と同等である、大型変数を伝達する際の効率が高い.
 
転載先:https://www.cnblogs.com/cxx8181602/p/9413108.html