2016-03-03 48 views
1

我正在對我的代碼進行代碼審查,我的同事提出了上述問題。哪一種更有效的方法來檢查count()函數是否爲空

這是有效的:

代碼

if (count($arr) != 0) { 
    // *Code Here* 
} 

代碼B

if (count($arr) > 0) { 
    // *Code Here* 
} 

希望有人可以做一些解釋!

+2

兩者都取得了相同的結果,並且它們之間沒有性能差異,所以每一個都是同樣正確的......您是否考慮過如果(!empty($ arr)){...}'這會稍微多一些雖然它仍然是一個微型優化 –

+0

@MarkBaker可以提供很好的鏈接,所以我可以有更多關於微型優化的閱讀材料。 –

+1

可能是你問他們的效率,而不是正確的,對嗎?你的頭銜和身體問題是不同的,這可能會混淆人們。 – manetsus

回答

2

由於count($arr)表示陣列中元素的數量,並且陣列中元素的數量始終爲0或更高,因此count($arr) > 0count($arr) != 0始終會生成完全相同的輸出。只要陣列不爲空,該輸出始終爲TRUE;如果爲空,則輸出FALSE

關於性能,沒有明顯的差異。但是,您可以通過這樣做,而不是獲得一個小的性能優勢:

if (!empty($arr)) { 
    // *Code Here* 
} 

這裏,輸出也總是TRUE,只要您的數組不爲空,並且FALSE當它是空的。然而,它是不是昂貴的做一個測試是否數組是空的,而不是數組的元素數。

+0

爲什麼downvote? –

+0

可能是OP詢問效率,不正確。他已經知道這兩個都是正確的! – manetsus

+1

@manetsus:字面問題是「哪一個是正確的?」沒有提到效率。 –

相關問題