php使用太多的引用性能有问题吗

发布于 2022-09-01 22:26:55 字数 293 浏览 13 评论 0

array_map(function($item) use(&$i, &$tmpVar) {
                $i++;
                $tmpVar['t'.$i] = $item;
            }, $ct_info);
            

最近项目中使用了太多array_map代替foreach来处理数据,而且使用了匿名函数及引用(&)
这样写太多的引用会不会导致php性能问题

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

心病无药医 2022-09-08 22:26:55

不会有影响,推荐你看看《深入理解PHP内核》。PHP变量在解释器中,实际会以zval结构体保存变量的信息,变量的引用只是符号表中指向同一个zval的一条记录而已。

http://www.php-internals.com/book/?p=chapt03/03-01-00-variables-structure

执手闯天涯 2022-09-08 22:26:55

使用引用不会造成性能问题,但是在对引用不熟悉的情况下滥用引用容易造成一些奇怪的错误,而且这些错误一般都很难排查。

一瞬间的火花 2022-09-08 22:26:55

我来对 @有明 的答案做点补充吧:

但是在对引用不熟悉的情况下滥用引用容易造成一些奇怪的错误,而且这些错误一般都很难排查。

比如这个:


<?php
    $arr = array(1,2,3);
    foreach ($arr as $k => $v){
        $v = &$arr[$k];
    }
    var_dump($arr);
?>
栖迟 2022-09-08 22:26:55

@SyuTingSong
说的PHP内核保存变量是一方面。
另外,PHP作为web程序运行的时候,总会在请求结束的时候把变量引用之类的释放掉。所以,多几个引用,关系不大。

丢了幸福的猪 2022-09-08 22:26:55

谢谢大家 无法全部采纳,均点赞

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文