小編給大家分享一下php中函數(shù)引用傳遞和返回的示例分析,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
成都創(chuàng)新互聯(lián)公司為您提適合企業(yè)的網(wǎng)站設(shè)計(jì)?讓您的網(wǎng)站在搜索引擎具有高度排名,讓您的網(wǎng)站具備超強(qiáng)的網(wǎng)絡(luò)競爭力!結(jié)合企業(yè)自身,進(jìn)行網(wǎng)站設(shè)計(jì)及把握,最后結(jié)合企業(yè)文化和具體宗旨等,才能創(chuàng)作出一份性化解決方案。從網(wǎng)站策劃到成都做網(wǎng)站、網(wǎng)站制作, 我們的網(wǎng)頁設(shè)計(jì)師為您提供的解決方案。
php的引用(就是在變量或者函數(shù)、對象等前面加上&符號)
在PHP 中引用的意思是:不同的名字訪問同一個(gè)變量內(nèi)容。
與C語言中的指針是有差別的.C語言中的指針里面存儲的是變量的內(nèi)容,在內(nèi)存中存放的地址。
1.變量的引用
PHP 的引用允許你用兩個(gè)變量來指向同一個(gè)內(nèi)容
<?php $a = 'abc'; $b = &$a; var_dump($a,$b);//均為'abc' $b = 123; var_dump($a,$b);//均為123
2.函數(shù)的引用傳遞(傳址調(diào)用)
<?php function test(&$a){ $a = $a + 100; } $b = 1; test($b); var_dump($b);//101
這里$b傳遞給函數(shù)的其實(shí)是$b的變量內(nèi)容所處的內(nèi)存地址,通過在函數(shù)里改變$a的值 就可以改變$b的值
注意:
上面的“ test($b); ” 中的$b前面不要加 & 符號,但是在函數(shù)“call_user_func_array”中,若要引用傳參,就得需要 & 符號
<?php function test(&$a){ $a = $a + 10; } $b = 1; call_user_func_array('test',array(&$b)); var_dump($b);//11
3.函數(shù)的引用返回
function &test() { static $b=0;//申明一個(gè)靜態(tài)變量 $b=$b+1; echo $b; return $b; } $a=test();//這條語句會輸出 $b的值 為1 $a=5; $a=test();//這條語句會輸出 $b的值 為2 $a=&test();//這條語句會輸出 $b的值 為3 $a=5; $a=test();//這條語句會輸出 $b的值 為6
通過這種方式$a=test();得到的其實(shí)不是函數(shù)的引用返回,這跟普通的函數(shù)調(diào)用沒有區(qū)別。$a=test()方式調(diào)用函數(shù),只是將函數(shù)的值賦給$a而已,而$a做任何改變都不會影響到函數(shù)中的$b而通過$a=&test()方式調(diào)用函數(shù)呢, 他的作用是將return $b中的$b變量的內(nèi)存地址與$a變量的內(nèi)存地址指向了同一個(gè)地方。
這里是為了讓大家理解函數(shù)的引用返回才使用靜態(tài)變量的,其實(shí)函數(shù)的引用返回多用在對象中 :
class talker{ private $data = 'Hi'; public function &get(){ return $this->data; } public function out(){ echo $this->data; } } $aa = new talker(); $d = &$aa->get(); $aa->out(); $d = 'How'; $aa->out(); $d = 'Are'; $aa->out(); $d = 'You'; $aa->out(); //輸出為HiHowAreYou
以上是“php中函數(shù)引用傳遞和返回的示例分析”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!
文章標(biāo)題:php中函數(shù)引用傳遞和返回的示例分析
分享鏈接:http://chinadenli.net/article8/ppejip.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供標(biāo)簽優(yōu)化、動態(tài)網(wǎng)站、網(wǎng)頁設(shè)計(jì)公司、定制開發(fā)、ChatGPT、網(wǎng)站策劃
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)