Jadual Kandungan
回复内容:
Rumah pembangunan bahagian belakang tutorial php array_map - php使用太多的引用性能有问题吗

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

Jun 06, 2016 pm 08:22 PM
array_map php sebut harga

<code>array_map(function($item) use(&amp;amp;amp;$i, &amp;amp;amp;$tmpVar) {
                $i++;
                $tmpVar['t'.$i] = $item;
            }, $ct_info);
            </code>
Salin selepas log masuk
Salin selepas log masuk

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

回复内容:

<code>array_map(function($item) use(&amp;amp;amp;$i, &amp;amp;amp;$tmpVar) {
                $i++;
                $tmpVar['t'.$i] = $item;
            }, $ct_info);
            </code>
Salin selepas log masuk
Salin selepas log masuk

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

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

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

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

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

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

比如这个:

<code>
<?php $arr = array(1,2,3);
    foreach ($arr as $k => $v){
        $v = &amp;amp;amp;$arr[$k];
    }
    var_dump($arr);
?&amp;amp;gt;</code>
Salin selepas log masuk

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

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

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Tag artikel panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Panduan Pemasangan dan Naik Taraf PHP 8.4 untuk Ubuntu dan Debian Panduan Pemasangan dan Naik Taraf PHP 8.4 untuk Ubuntu dan Debian Dec 24, 2024 pm 04:42 PM

Panduan Pemasangan dan Naik Taraf PHP 8.4 untuk Ubuntu dan Debian

Tarikh dan Masa CakePHP Tarikh dan Masa CakePHP Sep 10, 2024 pm 05:27 PM

Tarikh dan Masa CakePHP

Konfigurasi Projek CakePHP Konfigurasi Projek CakePHP Sep 10, 2024 pm 05:25 PM

Konfigurasi Projek CakePHP

Muat naik Fail CakePHP Muat naik Fail CakePHP Sep 10, 2024 pm 05:27 PM

Muat naik Fail CakePHP

Penghalaan CakePHP Penghalaan CakePHP Sep 10, 2024 pm 05:25 PM

Penghalaan CakePHP

Bincangkan CakePHP Bincangkan CakePHP Sep 10, 2024 pm 05:28 PM

Bincangkan CakePHP

Cara Menyediakan Kod Visual Studio (Kod VS) untuk Pembangunan PHP Cara Menyediakan Kod Visual Studio (Kod VS) untuk Pembangunan PHP Dec 20, 2024 am 11:31 AM

Cara Menyediakan Kod Visual Studio (Kod VS) untuk Pembangunan PHP

Panduan Ringkas CakePHP Panduan Ringkas CakePHP Sep 10, 2024 pm 05:27 PM

Panduan Ringkas CakePHP

See all articles