上篇文章為大家介紹了《什麼是靜態變數?其特點是?作用域在哪? (附實例)》,本文繼續介紹什麼是引用傳參給大家?引用傳參的用法?引用參數的賦值? (附程式碼),一起看看吧
什麼是引用傳參:
在設定函數形參時,如果在形參變數之前加上符號,就表示實參傳遞時要引用傳遞的方式(變數引用賦值)將實參值傳遞給形參;
如果引用傳參,那麼函數內部的引用傳參值會改變,對應外部實參的變數的值也會改變,效果類似全域變量,但是不是全域變數。
具體我們以舉例和程式碼為例;
<?php /****** 引用传参*/ //变量引用赋值 $he = '我喜欢你'; $she = &$he; echo $he; echo '<br/>'; echo $she; ?>
程式碼解析:
先定義一個初始變數($he)賦值為,我喜歡你;緊接著另一個($she),也是想說我喜歡你;此時的she找到我喜歡你的地址,並且賦值給了(she),然後我們輸出(echo)$he;再來輸出( echo)$she;我們會發現兩個輸出結果都是:我喜歡你,程式碼如下所示:
當我們嘗試改變she的值,此時$ she的值賦值為,我不喜歡你;當我們再次運行此值的時候,我們會發現,顯示結果都是:我不喜歡你;代碼如下所示:
根據上述實例,我們可以知道變數的參考其實就是$he找到「我喜歡你」這個位址,賦給了$she,也就是說他們兩個($he和$she)同時通過一個位址找到了一個值,一旦此值發生了改變,那麼他們兩個的值會發生相同的改變;也就是說she是he的一個別名,透過上述,我們再一次了解了變數的引用;
而在引用傳參:
<?php /****** 引用传参*/ //变量引用赋值 $he = '我喜欢你'; $she = &$he; $she = '我不喜欢你'; echo $he; echo '<br/>'; echo $she; echo '<hr>' ; $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中文網其他相關文章!