摘要:在寫的數組遍歷的時候,我們通常會這樣寫但是其實這樣會引起一個重要的問題如果沒有定義的話,這個時候的數組變量也就是就會出現錯誤。這樣能夠保證數組的安全遍歷。
在寫 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) 的操作。
如果你有更好的,請評論告知!
雙十一關注公眾號 codecasts 即送 100 元訂閱優惠劵的活動還有效!CODECASTS 支持 ETC BTC等電子購買訂閱會員啦
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/26056.html
摘要:以上例程會輸出返回值類型聲明增加了對返回類型聲明的支持。整數除法函數從移植到可為空類型參數以及返回值的類型現在可以通過在類型前加上一個問號使之允許為空。對于函數來說,不是一個合法的返回值。對于返回值,子類可以拓寬父類的或對象返回值類型到。 PHP5.5 ~ PHP7.2 新特性整理 官方文檔:http://php.net/manual/zh/appe... 一、從PHP 5.5.x ...
摘要:前言騰訊一面,相比阿里一面來說,騰訊一面先給打電話預定時間,這也給了我們這些面試者去準備的時間。其實閉包也就是指有權訪問另一個函數作用域的函數而已。常用的創建閉包的方法就是在函數內部創建另一個函數。 前言 騰訊一面,相比阿里一面來說,騰訊一面先給打電話預定時間,這也給了我們這些面試者去準備的時間。但是也正是因為這種確定性,也有在等待電話的時候的心情的忐忑。 背景 我是一名大三學生,大一...
閱讀 2422·2021-11-18 10:02
閱讀 1935·2021-10-13 09:40
閱讀 3014·2021-09-07 10:07
閱讀 2121·2021-09-04 16:48
閱讀 1019·2019-08-30 13:18
閱讀 2464·2019-08-29 14:03
閱讀 2934·2019-08-29 12:54
閱讀 3171·2019-08-26 11:41