亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 語言 > PHP > 正文

php函數引用返回的詳解

2024-09-04 11:49:19
字體:
來源:轉載
供稿:網友

函數引用與php中變量引用一樣使用的是&符號了,今天我們就一起來看看函數的引用返回的一些例子,希望這些例子能夠對各位有幫助.

引用返回

手冊里是這么寫的:引用返回用在當想用函數找到引用應該被綁定在哪一個變量上面時。不要用返回引用來增加性能,引擎足夠聰明來自己進行優化。僅在有合理的技術原因時才返回引用!要返回引用

當你想將函數的返回引用綁定到某個變量時,PHP允許你這么做:

  1. function &returns_reference() 
  2.     static $someref = 0; 
  3.     $someref++; 
  4.     return $someref
  5.  
  6. $newref = &returns_reference();//引用返回,相當于 $newref = &$someref; 
  7. echo $newref//1 
  8. //Vevb.com 
  9. $notref = returns_reference(); //值傳遞的是副本 
  10. $newref = 100; 
  11. echo $notref//2 
  12.  
  13. $newref = 100; 
  14. echo returns_reference(); //101 

可見,想讓函數返回引用,必須在函數申明和賦值時都帶上&操作符.

對于類中方法也是如此:

  1. class foo { 
  2.     public $value = 0; 
  3.  
  4.     public function &getValue() { 
  5.         return $this->value; 
  6.     } 
  7.  
  8. $obj = new foo; 
  9. $myValue = &$obj->getValue(); // $myValue is a reference to $obj->value, which is 42. 
  10. $obj->value = 2; 
  11. echo $myValue

一些簡單的例子

看下面的簡單例子,嘗試去理解引用返回.

  1. <?php 
  2. function &test() 
  3.  // 聲明一個靜態變量 
  4.     static $b = 0; 
  5.     $b = $b+1; 
  6.     echo $b
  7.     return $b
  8. $a = test(); //這條語句會輸出 $b 的值為 1 
  9. $a = 5; 
  10. $a = test(); //這條語句會輸出 $b 的值為2 
  11. $a = &test(); //這條語句會輸出 $b 的值為3 
  12. $a = 5; 
  13. $a = test(); //這條語句會輸出 $b的值 為6 
  14. ?> 
  15. //程序運行結果: 

盡管函數聲明方式是 function &test() 這樣,但我們通過這種方式 $a = test() 的函數調用得到的其實不是函數的引用返回,這跟普通的函數調用沒有區別。PHP 規定通過 $a = &test() 這種方式得到的才是函數的引用返回。

用上面的例子來解釋就是,$a = test() 這種方式調用函數,只是將函數的值賦給 $a 而已,而$a做任何改變都不會影響到函數中的$b。

而通過 $a = &test() 方式調用函數呢,它的作用是將 return $b 中的 $b 變量的內存地址與 $a 變量的內存地址指向了同一個地方。即產生了相當于這樣的效果 ($a=&$b), 所以改變 $a 的值也同時改變了 $b 的值。所以在執行了

$a = &test();

$a = 5;

以后,$b的值變為了5。

再來個程序例子加深理解:

  1. <?php 
  2. /* 
  3. ** 值傳遞和引用傳遞,值傳遞傳遞的是值的一個復本,引用傳遞傳遞的是值指向的內存地址 
  4. */ 
  5. // 函數的引用,定義時也要加上 & 
  6. function &func($a,$b){   
  7.  // 這里為了更直觀看到效果,定義一個靜態變量 
  8.  static $result = 0;    
  9.  $result+=$a+$b
  10.  echo $result.'<br />'
  11.  return $result
  12.  
  13. $a = $b = 10; 
  14. // PHP里這樣寫函數的引用調用,和調用普通函數沒有區別(只是將函數的返回值復制給$c這個變量,$c做任何改變不會影響上面函數中的$result) 
  15. // 要記住:PHP里的函數引用定義及調用都要在函數名前加上 & 
  16. $c = func($a,$b);  
  17. // 第一次執行func(),其靜態變量$result的值變為 20(10+10) 
  18. // 改變$c的值,不會對下面一行語句產生影響 
  19. $c = 666;   
  20. // 第二次執行func(),其靜態變量$result的值變為 40(20+10+10) 
  21. $c = func($a,$b); 
  22. echo '<hr />'
  23. // 這樣才是PHP中引用函數的調用方式 
  24. $d = &func($a,$b);   
  25. // 第三次執行func(),其靜態變量$result的值變為 40(40+10+10) 
  26. $d = 888; 
  27. // 第四次執行func(),其靜態變量$result的值變為 908(888+10+10) 
  28. $d = func($a,$b); 
  29. ?> 

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
在线精品国产成人综合| 成人情趣片在线观看免费| 精品久久久国产精品999| 91po在线观看91精品国产性色| 亚洲视频在线免费观看| 亚洲第一网站男人都懂| 日韩视频永久免费观看| 久久精品一本久久99精品| 国产精品久久久久久久美男| 国产精欧美一区二区三区| 国产精品久久久久久久久| 成人日韩av在线| 91精品国产乱码久久久久久久久| 亚洲区bt下载| 国产精品视频yy9099| 日产精品99久久久久久| 久久久久久有精品国产| 久久视频在线观看免费| 久久成年人免费电影| 亚洲欧美国产一区二区三区| 韩剧1988免费观看全集| 一本一本久久a久久精品牛牛影视| 欧美富婆性猛交| 在线精品高清中文字幕| 97精品国产91久久久久久| 欧美性理论片在线观看片免费| 亚洲国产精品视频在线观看| 欧美激情va永久在线播放| 精品欧美激情精品一区| 日韩免费不卡av| 欧美在线一级va免费观看| 欧美激情图片区| 国产视频精品xxxx| 97精品国产97久久久久久| 日韩中文字幕不卡视频| 亚洲午夜国产成人av电影男同| 色视频www在线播放国产成人| 国产精品美乳一区二区免费| 国产精品国产亚洲伊人久久| 欧美高清在线播放| 亚洲第一精品夜夜躁人人爽| 亚洲视频电影图片偷拍一区| 97超视频免费观看| 国产欧美日韩精品专区| 亚洲第一av在线| 亚洲一区二区三区sesese| 最近2019年中文视频免费在线观看| 日韩精品免费一线在线观看| 亚洲欧洲日本专区| 热门国产精品亚洲第一区在线| 国产欧美欧洲在线观看| 亚洲第一页中文字幕| 亚洲美腿欧美激情另类| 丁香五六月婷婷久久激情| 国产精品一区二区久久久久| 欧美最猛性xxxxx(亚洲精品)| 欧美亚洲国产成人精品| 91国偷自产一区二区三区的观看方式| 97久久精品人搡人人玩| 国产精品91在线观看| 久久精品影视伊人网| 午夜精品久久久久久久白皮肤| 91在线观看免费高清| 欧美日韩国产成人在线| 日韩有码在线观看| 国产精品网站大全| 欧美视频中文字幕在线| 亚洲女人天堂视频| 亚洲综合大片69999| 亚洲人成网站999久久久综合| 成人黄色av免费在线观看| 久久精品国产久精国产一老狼| 亚洲欧美国产另类| 97视频在线播放| 国产91精品久久久久久久| 日韩免费av一区二区| 欧美精品日韩www.p站| 欧美日韩午夜激情| 国产精品久久久久久久久久久久久久| 久久久久久久久国产精品| 国产成人精品视| 亚洲精品suv精品一区二区| 亚洲精品电影网| 草民午夜欧美限制a级福利片| 九九热这里只有在线精品视| 久久久久久美女| 狠狠色狠狠色综合日日小说| 中文字幕精品久久| 国产精品久久色| 亚洲欧洲av一区二区| 国产精品久久久久久久app| 日韩中文在线不卡| 九九久久精品一区| 欧美另类精品xxxx孕妇| 国产精品久久视频| 日韩在线视频导航| 亚洲精品不卡在线| 亚洲国产精品免费| 欧美孕妇毛茸茸xxxx| 美女视频黄免费的亚洲男人天堂| 中文字幕一精品亚洲无线一区| 88国产精品欧美一区二区三区| 乱亲女秽乱长久久久| 日韩在线播放视频| 欧美激情综合色综合啪啪五月| 国产亚洲欧美另类中文| 92看片淫黄大片看国产片| 欧美在线欧美在线| 亚洲电影免费观看高清| 欧美成人中文字幕在线| 91在线播放国产| 亚洲欧美日韩一区二区在线| 久久综合88中文色鬼| 久久99热这里只有精品国产| 久久999免费视频| 亚洲淫片在线视频| 久久久久国产精品免费| 奇米影视亚洲狠狠色| 久久视频在线播放| 国产一区二区三区视频| 亚洲精品国产精品自产a区红杏吧| 亚洲电影中文字幕| 一道本无吗dⅴd在线播放一区| 久久久久久综合网天天| 亚洲成人精品视频在线观看| 黑人巨大精品欧美一区二区一视频| 国产视频在线观看一区二区| 亚洲精品日韩久久久| 伊人伊成久久人综合网站| 日韩av中文字幕在线| 欧美激情视频在线观看| 91精品国产91久久| 精品久久久久久久久中文字幕| 久久免费少妇高潮久久精品99| 亚洲人高潮女人毛茸茸| 久久九九有精品国产23| 欧美午夜视频在线观看| www日韩中文字幕在线看| 成人精品视频久久久久| 久久综合色88| 久久久精品2019中文字幕神马| 欧美激情2020午夜免费观看| 亚洲在线视频观看| 性欧美暴力猛交69hd| 亚洲第一福利网站| 久久久久久成人精品| 国产精品电影观看| 九九热精品视频在线播放| 日韩av手机在线| 中文字幕日韩专区| 亚洲精品欧美极品| 亚洲精品一二区| 精品丝袜一区二区三区| 91视频-88av| 欧美午夜影院在线视频| 欧美激情精品久久久久| 日韩在线中文字幕| 91探花福利精品国产自产在线| 91成人在线观看国产| 97久久精品人搡人人玩| 国产精品电影在线观看| 亚洲视频在线视频| 国内伊人久久久久久网站视频| 国产精品观看在线亚洲人成网|