2017-07-02 46 views
0

我知道isset()vs empty()的基準,但我只有當參數爲null時才需要執行代碼。這是一個執行很多次的函數,所以我想優化它。我知道isset()比empty()更快,但是!isset()與=== null是什麼?我知道變量將存在,所以我只需要對null進行測試。PHP性能!isset()vs === null

我在考慮可能的懲罰!運營商。

回答

1

我覺得懶惰要求別人來衡量這一點,所以我嘗試了一百萬次迭代。

差異是微不足道的,因此!isset()是更好的選擇,因爲如果變量未定義,=== null將拋出錯誤。

一百萬次迭代:

!isset() .1118 
    === null .1046 

BTW,有一個(也是微不足道的)罰款的!運營商。

isset() .1118 
    !isset() .1203 
+0

yes'=== null'會更快,但如果未設置該值,則會引發錯誤。但是,如果您在腳本開始時將變量設置爲null(因此您確定該變量將具有值或null),則可以使用比較運算符,該運算符速度更快。但差別非常小,所以最好在代碼中選擇可讀性。 – user544262772