什麼是引用傳參?引用傳參的用法?引用參數的賦值? (附代碼)

慕斯
發布: 2023-03-10 11:10:01
原創
3966 人瀏覽過

上篇文章為大家介紹了《什麼是靜態變數?其特點是?作用域在哪? (附實例)》,本文繼續介紹什麼是引用傳參給大家?引用傳參的用法?引用參數的賦值? (附程式碼),一起看看吧

什麼是引用傳參?引用傳參的用法?引用參數的賦值? (附代碼)

什麼是引用傳參:

  • 在設定函數形參時,如果在形參變數之前加上符號,就表示實參傳遞時要引用傳遞的方式(變數引用賦值)將實參值傳遞給形參;

  • 如果引用傳參,那麼函數內部的引用傳參值會改變,對應外部實參的變數的值也會改變,效果類似全域變量,但是不是全域變數。

具體我們以舉例和程式碼為例;

<?php
     /****** 引用传参*/
     //变量引用赋值
     $he = &#39;我喜欢你&#39;;
     $she = &$he;
     echo $he;
     echo &#39;<br/>&#39;;
     echo $she;
     
?>
登入後複製

程式碼解析:

先定義一個初始變數($he)賦值為,我喜歡你;緊接著另一個($she),也是想說我喜歡你;此時的she找到我喜歡你的地址,並且賦值給了(she),然後我們輸出(echo)$he;再來輸出( echo)$she;我們會發現兩個輸出結果都是:我喜歡你,程式碼如下所示:

什麼是引用傳參?引用傳參的用法?引用參數的賦值? (附代碼)

當我們嘗試改變she的值,此時$ she的值賦值為,我不喜歡你;當我們再次運行此值的時候,我們會發現,顯示結果都是:我不喜歡你;代碼如下所示:

什麼是引用傳參?引用傳參的用法?引用參數的賦值? (附代碼)

根據上述實例,我們可以知道變數的參考其實就是$he找到「我喜歡你」這個位址,賦給了$she,也就是說他們兩個($he和$she)同時通過一個位址找到了一個值,一旦此值發生了改變,那麼他們兩個的值會發生相同的改變;也就是說she是he的一個別名,透過上述,我們再一次了解了變數的引用;

而在引用傳參:

<?php
     /****** 引用传参*/
     //变量引用赋值
     $he = &#39;我喜欢你&#39;;
     $she = &$he;
     $she = &#39;我不喜欢你&#39;;
     echo $he;
     echo &#39;<br/>&#39;;
     echo $she;
     echo &#39;<hr>&#39; ;
     $num = 15;
     function demo($no){
       $no +=5;
     }
     demo($num);
     echo $num;
     
?>
登入後複製

程式碼解析:

首先,我們定義一個變數($num);緊接著我們定義一個函數(function demo);然後我們在demo中傳一個($no)變量,此時,當我要調用demo($num)時,我們輸出(echo)num,此時的num會賦值給no,然後進行接下來的運算,接著當我們在外部輸出(num)發現此時程式碼運行的結果仍然是15(運行結果如下圖);沒有任何變化;當我們在demo($no)前加一個取位址符(&),此時運算的結果會顯示20(運行結果如下);根據上述,正常情況下我們的實參變數demo($num)會賦值給形參($no);但是形參的賦值是引用的方式(&)賦值,綜上可知,他們兩個相當於$no=&$num;任意一個改變其值,都會影響最終的結果。

什麼是引用傳參?引用傳參的用法?引用參數的賦值? (附代碼)

什麼是引用傳參?引用傳參的用法?引用參數的賦值? (附代碼)

#推薦學習:《PHP影片教學

以上是什麼是引用傳參?引用傳參的用法?引用參數的賦值? (附代碼)的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
最新問題
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!