PHP函数引用返回的实例详解
php  /  管理员 发布于 7年前   149
引用返回 手册里是这么写的:引用返回用在当想用函数找到引用应该被绑定在哪一个变量上面时。不要用返回引用来增加性能,引擎足够聪明来自己进行优化。仅在有合理的技术原因时才返回引用!要返回引用 当你想将函数的返回引用绑定到某个变量时,PHP允许你这么做: 可见,想让函数返回引用,必须在函数申明和赋值时都带上&操作符. 对于类中方法也是如此: 一些简单的例子 看下面的简单例子,尝试去理解引用返回. 尽管函数声明方式是 用上面的例子来解释就是, 而通过 所以在执行了 以后,$b的值变为了5。 再来个程序例子加深理解: 总结 关于php函数引用返回的内容到这就基本结束了,希望对大家学习或使用PHP函数能有所帮助,如果有疑问大家可以留言交流。谢谢大家对AIDI的支持。function &returns_reference(){ static $someref = 0; $someref++; return $someref;} $newref = &returns_reference();//引用返回,相当于 $newref = &$someref;echo $newref; //1//phpfensi.com$notref = returns_reference(); //值传递的是副本$newref = 100;echo $notref; //2 $newref = 100;echo returns_reference(); //101
class foo { public $value = 0; public function &getValue() { return $this->value; }} $obj = new foo;$myValue = &$obj->getValue(); // $myValue is a reference to $obj->value, which is 42.$obj->value = 2;echo $myValue;
//程序运行结果:1236
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;
'; return $result;} $a = $b = 10;// PHP里这样写函数的引用调用,和调用普通函数没有区别(只是将函数的返回值复制给$c这个变量,$c做任何改变不会影响上面函数中的$result)// 要记住:PHP里的函数引用定义及调用都要在函数名前加上 &$c = func($a,$b); // 第一次执行func(),其静态变量$result的值变为 20(10+10)// 改变$c的值,不会对下面一行语句产生影响$c = 666; // 第二次执行func(),其静态变量$result的值变为 40(20+10+10)$c = func($a,$b);echo '
';// 这样才是PHP中引用函数的调用方式$d = &func($a,$b); // 第三次执行func(),其静态变量$result的值变为 40(40+10+10)$d = 888;// 第四次执行func(),其静态变量$result的值变为 908(888+10+10)$d = func($a,$b);?>您可能感兴趣的文章:
122 在
学历:一种延缓就业设计,生活需求下的权衡之选中评论 工作几年后,报名考研了,到现在还没认真学习备考,迷茫中。作为一名北漂互联网打工人..123 在
Clash for Windows作者删库跑路了,github已404中评论 按理说只要你在国内,所有的流量进出都在监控范围内,不管你怎么隐藏也没用,想搞你分..原梓番博客 在
在Laravel框架中使用模型Model分表最简单的方法中评论 好久好久都没看友情链接申请了,今天刚看,已经添加。..博主 在
佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 @1111老铁这个不行了,可以看看近期评论的其他文章..1111 在
佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 网站不能打开,博主百忙中能否发个APP下载链接,佛跳墙或极光..
Copyright·© 2019 侯体宗版权所有·
粤ICP备20027696号