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

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

從 PHP 7.3 開始,只能使用一個(gè)參數(shù)來調(diào)用 array_unshift() 。重點(diǎn)是什么?

從 PHP 7.3 開始,只能使用一個(gè)參數(shù)來調(diào)用 array_unshift() 。重點(diǎn)是什么?

PHP
侃侃無極 2023-07-21 18:21:35
正如PHP 手冊中關(guān)于array_unshift()函數(shù)所說:7.3.0 現(xiàn)在可以僅使用一個(gè)參數(shù)來調(diào)用該函數(shù)。以前,至少需要兩個(gè)參數(shù)。我沒明白。如何使用只有一個(gè)參數(shù)的函數(shù)?我試圖猜測,但什么也沒發(fā)生:$arr = ['one' => 'test', 'two' => 'some'];array_unshift($arr);print_r($arr);// Result:// Array// (//? ? [one] => test//? ? [two] => some// )$arr1 = ['what', 'ever'];array_unshift($arr1);print_r($arr1);// Array// (//? ? [0] => what//? ? [1] => ever// )數(shù)組沒有改變。有誰知道 PHP 貢獻(xiàn)者的具體建議是什么?
查看完整描述

2 回答

?
阿波羅的戰(zhàn)車

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

我認(rèn)為我的評(píng)論可能需要更多解釋,希望這能讓它更清楚。


如果我有兩個(gè)數(shù)組,并且我想添加從第二個(gè)數(shù)組到第一個(gè)數(shù)組末尾的所有元素,array_push與解包運(yùn)算符結(jié)合使用可以讓我這樣做:


$a = [1, 2, 3];

$b = [4, 5, 6];


array_push($a, ...$b);

$a就是現(xiàn)在[1, 2, 3, 4, 5, 6]


(array_unshift讓我做同樣的事情,但將元素添加到數(shù)組的開頭。使用array_push我認(rèn)為使示例更清晰)


在 PHP 7.3 之前,如果$b為空,則會(huì)引發(fā)警告,因?yàn)榻獍諗?shù)組相當(dāng)于僅傳遞第一個(gè)參數(shù)。請參閱此處的演示: https: //3v4l.org/GZQoo。$a仍然不會(huì)改變,這是期望的結(jié)果,所以它只是日志中不必要的噪音。


在實(shí)際示例中,如果$b是由另一個(gè)函數(shù)(調(diào)用數(shù)據(jù)庫等)生成的,那么如果沒有此更改,我需要if (!empty($b) ...在運(yùn)行代碼之前調(diào)用以防止出現(xiàn)警告。現(xiàn)在,它默默地工作。


注意:還有其他方法可以將一個(gè)數(shù)組附加到另一個(gè)數(shù)組(array_merge、array_replace和+運(yùn)算符),但它們都有特定的合并和刪除重復(fù)共享密鑰的方法。此方法只是將第二個(gè)值的所有值附加到第一個(gè)值,而不管鍵是什么。


查看完整回答
反對(duì) 回復(fù) 2023-07-21
?
慕桂英546537

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

這只是一個(gè)猜測,但當(dāng)函數(shù)返回時(shí):


返回?cái)?shù)組中新的元素?cái)?shù)。


您可以使用它作為count替代方案:


$arr1 = ['what', 'ever'];

print_r(array_unshift($arr1));? ? // 2

但當(dāng)然這并不明顯。


作為手動(dòng)的另一個(gè)副作用:


所有數(shù)字?jǐn)?shù)組鍵將被修改為從零開始計(jì)數(shù)


因此,它是以下內(nèi)容的部分替代array_values:


$arr1 = [4 => 'what', 5 => 'ever'];

array_unshift($arr1);

print_r($arr1);? // [[0] => what [1] => ever]

而且也不是很明顯。


也許其他答案會(huì)更好地解釋這種行為。


array_push()現(xiàn)在也可以array_unshift()用單個(gè)參數(shù)調(diào)用,這特別方便。擴(kuò)展運(yùn)算符。


所以,你可以使用類似的東西:


$arr1 = [['what'], ['ever']];

array_unshift(...$arr1);

print_r($arr1);

但這個(gè)方法的行為很奇怪o_O:


Array

(

? ? [0] => Array

? ? ? ? (

? ? ? ? ? ? [0] => Array

? ? ? ? ? ? ? ? (

? ? ? ? ? ? ? ? ? ? [0] => ever

? ? ? ? ? ? ? ? )


? ? ? ? ? ? [1] => what

? ? ? ? )


? ? [1] => Array

? ? ? ? (

? ? ? ? ? ? [0] => ever

? ? ? ? )


)


查看完整回答
反對(duì) 回復(fù) 2023-07-21
  • 2 回答
  • 0 關(guān)注
  • 147 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號(hào)

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