第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

在PHP(> = 5.0)中,通過(guò)引用傳遞速度更快嗎?

在PHP(> = 5.0)中,通過(guò)引用傳遞速度更快嗎?

子衿沉夜 2019-10-29 14:35:57
在PHP中,可以通過(guò)在函數(shù)聲明中的參數(shù)前面加上“&”號(hào)來(lái)通過(guò)引用傳遞函數(shù)參數(shù),如下所示:function foo(&$bar){    // ...}現(xiàn)在,我知道這不是為了提高性能而設(shè)計(jì)的,而是允許函數(shù)更改通常不在其范圍內(nèi)的變量。取而代之的是,PHP似乎使用寫(xiě)時(shí)復(fù)制來(lái)避免在對(duì)象被更改之前復(fù)制對(duì)象(也許還有數(shù)組)。因此,對(duì)于不更改其參數(shù)的函數(shù),效果應(yīng)與您通過(guò)引用傳遞它們的效果相同。但是,我想知道寫(xiě)時(shí)復(fù)制邏輯是否可能在傳遞引用時(shí)短路,并且這是否會(huì)對(duì)性能產(chǎn)生影響。ETA:可以肯定的是,我認(rèn)為它并不快,而且我很清楚這不是引用的目的。所以我想我自己的猜測(cè)很好,我是在尋找一個(gè)真正知道內(nèi)幕下肯定會(huì)發(fā)生什么的人的答案。在PHP開(kāi)發(fā)的五年中,我總是發(fā)現(xiàn)很難通過(guò)閱讀源代碼獲得有關(guān)PHP內(nèi)部構(gòu)件的質(zhì)量信息。
查看完整描述

3 回答

?
互換的青春

TA貢獻(xiàn)1797條經(jīng)驗(yàn) 獲得超6個(gè)贊

Zend Engine使用寫(xiě)時(shí)復(fù)制,當(dāng)您自己使用引用時(shí),會(huì)產(chǎn)生一些額外的開(kāi)銷(xiāo)。但是,僅在撰寫(xiě)本文時(shí)才能找到此提及,并且手冊(cè)中的注釋包含其他鏈接。


(編輯)關(guān)于對(duì)象和引用的手冊(cè)頁(yè)包含有關(guān)對(duì)象變量與引用如何不同的更多信息。


查看完整回答
反對(duì) 回復(fù) 2019-10-29
?
飲歌長(zhǎng)嘯

TA貢獻(xiàn)1951條經(jīng)驗(yàn) 獲得超3個(gè)贊

我對(duì)此進(jìn)行了一些測(cè)試,因?yàn)槲也淮_定給出的答案。


我的結(jié)果表明,按引用傳遞大型數(shù)組或字符串的速度明顯更快。


這是我的結(jié)果: 基準(zhǔn)測(cè)試


Y軸(行程)是一個(gè)函數(shù)在一秒鐘內(nèi)可以調(diào)用多少次* 10


每個(gè)功能/變量重復(fù)測(cè)試8次


這是我使用的變量:


$large_array = array_fill(PHP_INT_MAX / 2, 1000, 'a');

$small_array = array('this', 'is', 'a', 'small', 'array');

$large_object = (object)$large_array;

$large_string = str_repeat('a', 100000);

$small_string = 'this is a small string';

$value = PHP_INT_MAX / 2;

這些是功能:


function pass_by_ref(&$var) {

}


function pass_by_val($var) {

}


查看完整回答
反對(duì) 回復(fù) 2019-10-29
  • 3 回答
  • 0 關(guān)注
  • 714 瀏覽
慕課專(zhuān)欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)