免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1699 | 回复: 2
打印 上一主题 下一主题

[问题]关于“引用返回”的概念不明白 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-10-18 18:42 |只看该作者 |倒序浏览
下面是php手册里关于“引用返回”的内容,虽然不多但是基本不明白。到底“引用返回”有什么意思?用来解决什么问题?哪位给解释一下吧!


引用返回
引用返回用在当想用函数找到引用应该被绑定在哪一个变量上面时。不要用返回引用来增加性能,引擎足够聪明来自己进行优化。仅在有合理的技术原因时才返回引用!要返回引用,使用此语法:


<?php
function &find_var($param)
{
    /* ...code... */
    return $found_var;
}

$foo =& find_var($bar);
$foo->x = 2;
?>  


本例中 find_var 函数所返回的对象的属性将被赋值,而不是拷贝,就和没有用引用语法一样。

注: 和参数传递不同,这里必须在两个地方都用 & 符号――指出返回的是一个引用,而不是通常的一个拷贝,同样也指出 $foo 是作为引用的绑定,而不是通常的赋值。

注: 如果试图这样从函数返回引用:return ($found_var);,这将不会起作用,因为在试图返回一个表达式的结果而不是一个引用的变量。只能从函数返回引用变量――没别的方法。如果代码试图返回一个动态表达式或 new 运算符的结果,自 PHP 4.4.0 和 PHP 5.1.0 起会发出一条 E_NOTICE 错误。

论坛徽章:
0
2 [报告]
发表于 2006-10-20 05:30 |只看该作者
我理解,就是返回$found_var的引用,$foo也就相当于是$found_var的引用
4.4以前不会返回Notice错误是php的bug

论坛徽章:
0
3 [报告]
发表于 2006-10-20 10:27 |只看该作者
引用用了写时复制机制,在大数据变量传递时会很有用,速度效率好,但是数据量小时,反而不如直接copy
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP