您好,登錄后才能下訂單哦!
小編給大家分享一下php中什么是引用傳參,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
什么是引用傳參:
在設定函數形參時,如果在形參變量之前添加符號,就表示實參傳遞時要引用傳遞的方式(變量引用賦值)將實參值傳遞給形參;
如果引用傳參,那么函數內部的引用傳參值發生改變,對應外部實參的變量的值也會發生改變,效果類似于全局變量,但是不是全局變量。
具體我們以舉例和代碼為例;
<?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中什么是引用傳參”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。