考慮這兩個例子...
$key = 'jim'; // example 1 if (isset($array[$key])) { // ... } // example 2 if (array_key_exists($key, $array)) { // ... }
我有興趣知道這兩者是否更好。我一直使用第一個範例,但在本網站上看到很多人使用第二個範例。
那麼,哪個比較好呢?快點?意圖更明確?
如果您對我最近完成的一些測試感興趣:
https://stackoverflow.com/a/21759158/520857
摘要:
| Method Name | Run time | Difference ========================================================================================= | NonExistant::noCheckingTest() | 0.86004090309143 | +18491.315775911% | NonExistant::emptyTest() | 0.0046701431274414 | +0.95346080503016% | NonExistant::isnullTest() | 0.88424181938171 | +19014.461681183% | NonExistant::issetTest() | 0.0046260356903076 | Fastest | NonExistant::arrayKeyExistsTest() | 1.9001779556274 | +209.73055713%
isset() 速度更快,但與 array_key_exists() 不同。
isset()
array_key_exists()
array_key_exists() 純粹檢查鍵是否存在,即使值為 NULL。
NULL
鑑於 如果鍵存在且值為 NULL,isset() 將傳回 false。
false
如果您對我最近完成的一些測試感興趣:
https://stackoverflow.com/a/21759158/520857
摘要:
isset()
速度更快,但與array_key_exists()
不同。array_key_exists()
純粹檢查鍵是否存在,即使值為NULL
。鑑於 如果鍵存在且值為
NULL
,isset()
將傳回false
。