php7簡短而安全的陣列遍歷方法

2022-05-10 13:16:58 字數 661 閱讀 5392

在寫 php 的陣列遍歷的時候,我們通常會這樣寫:

foreach ($definition['keys'] as $id => $val) 

但是其實這樣會引起乙個重要的問題:如果$definition['keys']沒有定義的話,這個時候的陣列變數(也就是 foreach)就會出現錯誤。

所以,我們高階成這個樣子:

if (!empty($definition['keys']) 

}

是不是很常見?我們只要在外邊再包含一層 if 判斷就好了。這樣能夠保證陣列的安全遍歷。

不過這樣還沒有達到簡短的需求,所以借助 php7 的??便利,我們可以寫成這個樣子:

foreach ($definition['keys'] ??  as $id => $val) 

是不是很 neat ! 哈哈哈,那麼在這裡理解 ?? 可以這樣理解:

$a = is_null($b) ? $default: $b;

$a = $b?? $default;

相當於做了乙個is_null($b)的操作。

PHP 簡短而安全的陣列遍歷

在寫 php 的陣列遍歷的時候,我們通常會這樣寫 foreach definition keys as id val 但是其實這樣會引起乙個重要的問題 如果 definition keys 沒有定義的話,這個時候的陣列變數 也就是 foreach 就會出現錯誤。所以,我們高階成這個樣子 if emp...

PHP7陣列底層原理

php底層是由hashtable bucket實現 hashtable typedef struct hashtable bucket typedef struct bucketbucket 二 儲存過程 通過hash函式對key做hash,算出在中間表的下標,資料順序的儲存在bucket陣列 鍊錶...

php7的新特性

截止到目前為止,php官方已經發布了php7的rc5版本,預計在11月份左右會發布第乙個正式版本!現在來說php7的重大特性肯定已經是定型了,不會再有什麼變動了。後續一些版本的迭代主要也就是修修bug,優化之類的。下面就來說話我們一直期待的php7.0新特徵吧。1.標量引數型別宣告 現在支援字串 s...