區別PHP引用傳遞與值傳遞的小例子
定義php
- 傳值:是把實參的值賦值給行參 ,那麼對行參的修改,不會影響實參的值
- 傳引用 :真正的以地址的方式傳遞參數之後,行參和實參都是同一個對象,只是他們名字不一樣而已,對行參的修改將影響實參的值
說明函數
- 傳值:跟copy是同樣的。打個比方,我有一棟房子,我給你建築材料,你建了一個跟個人房子如出一轍的房子,你在你的房子作什麼事都不會影響到我,我在個人房子裏作什麼事也不會影響到你,彼此獨立。
- 傳引用:讓我想起了上大學時學習C語言的指針了,感受差很少。打個比方,我有一棟房子,我給你一把鑰匙,咱們二個均可以進入這個房子,你在房子作什麼都會影響到我。
實例學習
1,傳值spa
- <?php
- $param1=1;
- $param2=2;
- $param2 = $param1;
- echo $param2;
- ?>
2,傳引用指針
- <?php
- $param2=1;
- $param1 = &$param2;
- echo $param2;
- $param1 = 2;
- echo $param2;
- ?>
3,函數傳值對象
- <?php
- $param1 = 1;
- function add($param2)
- {
- $param2=3;
- }
- $param3=add($param1);
- echo '<br>$param1=='.$param1.'<br>';
- echo '<br>$param2=='.$param2.'<br>';
- echo '<br>$param3=='.$param3.'<br>';
- ?>
4,函數傳引用string
- <?php
- $param1 = 1;
- function add(&$param2)
- {
- $param2=3;
- }
- echo '<br>$param1=='.$param1.'<br>';
- $param3=add($param1);
- echo '<br>$param1=='.$param1.'<br>';
- echo '<br>$param2=='.$param2.'<br>';
- echo '<br>$param3=='.$param3.'<br>';
- ?>
5,函數傳引用2io
- <?php
-
- $param1 = 1;
- function &add(&$param2)
- {
- $param2 = 2;
- return $param2;
- }
- $param3=&add($param1);
- $param4=add($param1);
- echo '<br>$param3=='.$param3.'<br>';
- echo '<br>$param4=='.$param4.'<br>';
- echo '<br>$param1=='.$param1.'<br>';
-
- $param3++;
-
- echo '<br>$param1=='.$param1.'<br>';
-
- $param4++;
- echo '<br>$param1=='.$param1.'<br>';
- ?>
歡迎關注本站公眾號,獲取更多信息