"Reference return" of PHP functions

From , 3 Years ago, written in PHP, viewed 52 times.
URL https://pastebin.vip/view/976abf49
  1. <?php
  2. /*
  3. ** 值传递和引用传递,值传递传递的是值的一个复本,引用传递传递的是值指向的内存地址
  4. */
  5.  
  6. // 函数的引用,定义时也要加上 &
  7. function &func($a,$b){  
  8.         // 这里为了更直观看到效果,定义一个静态变量
  9.         static $result = 0;    
  10.         $result+=$a+$b;
  11.         echo $result.'<br />';
  12.         return $result;
  13. }
  14.  
  15. $a = $b = 10;
  16.  
  17. // PHP里这样写函数的引用调用,和调用普通函数没有区别(只是将函数的返回值复制给$c这个变量,$c做任何改变不会影响上面函数中的$result)
  18. // 要记住:PHP里的函数引用定义及调用都要在函数名前加上 &
  19. $c = func($a,$b);
  20. // 第一次执行func(),其静态变量$result的值变为 20(10+10)
  21.  
  22. // 改变$c的值,不会对下面一行语句产生影响
  23. $c = 666;  
  24. // 第二次执行func(),其静态变量$result的值变为 40(20+10+10)
  25. $c = func($a,$b);
  26.  
  27. echo '<hr />';
  28.  
  29. // 这样才是PHP中引用函数的调用方式
  30. $d = &func($a,$b);  
  31. // 第三次执行func(),其静态变量$result的值变为 40(40+10+10)
  32. $d = 888;
  33. // 第四次执行func(),其静态变量$result的值变为 908(888+10+10)
  34. $d = func($a,$b);
  35.  
  36. ?>
  37.  

Reply to ""Reference return" of PHP functions"

Here you can reply to the paste above

captcha

https://burned.cc - Burn After Reading Website