比較一覧
値 or 要素 | 型 | isset | is_null | empty | if($var) | !empty | |||
---|---|---|---|---|---|---|---|---|---|
1 | $var | 未定義 (null) |
false |
error (true) |
true |
error (false) |
false | ||
2 | $var = NULL | null | false | true | true | false | false | ||
3 | $var = ""; | string | true | false | true | false | false | ||
4 | $var = 0; | int | true | false | true | false | false | ||
5 | $var = "0"; | string | true | false | true | false | false | ||
6 | $var = 1 | int | true | false | false | true | true | ||
7 | $var = "1"; | string | true | false | false | true | true | ||
8 | $var = array() | array | true | false | true | false | false | ||
9 | $var = array(1) | array | true | false | false | true | true |
解説1
isset(公式)
empty(公式)
empty($var)
は !isset($var) || $var == false
と同義(公式より)
!empty($var)
は isset($var) && $var == true
と同義。
・!isset()
をis_nullの代わりに使うほうがセーフティ。
・!empty
はnullチェック
と if($var)
のダブルチェック
。
・青字
部分の$var=0
、$var="0"
に気をつけてください。
まとめ
・isset
は未定義を含む、nullチェック
。
・empty
は未定義を含む、値がないとき
のチェック。
・if($var)
は未定義チェックなしの値があるとき
のチェック。
・!empty
は未定義チェックありの値があるとき
のチェック。
・青字の判定部分
はかなり微妙で、数値的な0
や文字列の"0"
がないもの
と判定されます。
クラス内変数
値 or 要素 | 型 | isset | is_null | empty | if($var) | !empty | |||
---|---|---|---|---|---|---|---|---|---|
1 | $var | 未定義 (null) |
false | true | true | false | false | ||
* | 以下同上 |
getter 比較一覧
値 or 要素 | 型 | isset | is_null | empty | if($var) | !empty | |||
---|---|---|---|---|---|---|---|---|---|
1 | $var | 未定義 (null) |
false | true | true | false | false | ||
2 | $var = NULL | null | false | true | true | false | false | ||
3 | $var = ""; | string | false | false | true | false | false | ||
4 | $var = 0; | int | false | false | true | false | false | ||
5 | $var = "0"; | int | false | false | true | false | false | ||
6 | $var = 1; | int | false | false | true | true | false | ||
7 | $var = "1"; | int | false | false | true | true | false | ||
8 | $var = array() | array | false | false | true | false | false | ||
9 | $var = array(1) | array | false | false | true | true | false |
解説2
getterでは打って変わって、!is_null
とif($var)
が幸せになれそうです。
isset
は全く機能しません。!is_null
を使用しましょう。
empty
も中身のある配列
で挙動がおかしいので、素直にif($var)
がよさそうです。
こちらも青字の$var=0
、$var="0"
と$var=array(1)
には気を付けてください。
公式の比較表
LGTMお願いします!
ストックのついでにお願いします!
モチベーションがあがります!