在寫 PHP 的陣列遍歷的時候,我們通常會這樣寫:
foreach ($definition['keys'] as $id => $val) { // ... }
但是其實這樣會引起一個重要的問題:如果 $definition['keys'] 沒有定義的話,這個時候的陣列變數(也就是 foreach)就會出現錯誤。
所以,我們進階成這個樣子:
if (!empty($definition['keys']) { foreach ($definition['keys'] as $id => $val) { // ... } }
是不是很常見?我們只要在外邊再包含一層 if 判斷就好了。這樣能夠保證陣列的安全遍歷。
不過這樣還沒有達到簡短的需求,所以借助 PHP7 的 ?? 便利,我們可以寫成這個樣子:
foreach ($definition['keys'] ?? [] as $id => $val) { // ... }
是不是很 neat ! 哈哈哈,那麼在這裡理解 ?? 可以這樣理解:
$a = is_null($b) ? $default : $b; $a = $b ?? $default;
相當於做了一個 is_null($b) 的操作。
更多程式設計相關內容,請關注TW511.COM程式設計入門欄目!
以上就是PHP簡短而安全的陣列遍歷的詳細內容,更多請關注TW511.COM其它相關文章!