【PHP】: isset, is_null, if($var), empty 比較一覧

####比較一覧

 |値 or 要素|型||isset  |is_null  |empty |if($var)||!empty
 ---|---|---|---|:-:|:-:|:-:|:-:|---|:-:|
 1|$var|未定義<br>(null)||_false_|<font color="Red">***error***</font><br>(_true_)|_true_|<font color="Red">***error***</font><br>(_false_)||_false_
 2|$var = NULL|__null__||_false_|_true_|_true_|_false_||_false_
 3|$var = "";|string||_true_|_false_|_true_|_false_||_false_
 4|<font color="#0066ff">$var = 0;</font>|int||_true_|_false_|<font color="#0066ff">_true_</font>|<font color="#0066ff">_false_</font>||<font color="#0066ff">_false_</font>
 5|<font color="#0066ff">$var = "0";</font>|string||_true_|_false_|<font color="#0066ff">_true_</font>|<font color="#0066ff">_false_</font>||<font color="#0066ff">_false_</font>
 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（公式）](https://www.php.net/manual/ja/function.isset.php)
[empty（公式）](https://www.php.net/manual/ja/function.empty.php)
`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|未定義<br>(null)||_false_|_true_|_true_|_false_||_false_
 *|以下同上

####getter 比較一覧
 |値 or 要素|型||isset  |is_null  |empty |if($var)||!empty
 ---|---|---|---|:-:|:-:|:-:|:-:|---|:-:|
 1|$var|未定義<br>(null)||_false_|_true_|_true_|_false_||_false_
 2|$var = NULL|__null__||_false_|_true_|_true_|_false_||_false_
 3|$var = "";|string||<font color="#0066ff">_false_</font>|_false_|_true_|_false_||_false_
 4|<font color="#0066ff">$var = 0;</font>|int||<font color="#0066ff">_false_</font>|_false_|<font color="#0066ff">_true_</font>|<font color="#0066ff">_false_</font>||<font color="#0066ff">_false_</font>
 5|<font color="#0066ff">$var = "0";</font>|int||<font color="#0066ff">_false_</font>|_false_|<font color="#0066ff">_true_</font>|<font color="#0066ff">_false_</font>||<font color="#0066ff">_false_</font>
 6|$var = 1;|int||<font color="#0066ff">_false_</font>|_false_|_true_|_true_||_false_
 7|$var = "1";|int||<font color="#0066ff">_false_</font>|_false_|_true_|_true_||_false_
 8|$var = array()|array||<font color="#0066ff">_false_</font>|_false_|_true_|_false_||_false_
 9|<font color="#0066ff">$var = array(1)</font>|array||<font color="#0066ff">_false_</font>|_false_|<font color="#0066ff">_true_</font>|_true_||<font color="#0066ff">_false_</font>

####解説2
getterでは打って変わって、`!is_null`と`if($var)`が幸せになれそうです。
`isset`は全く機能しません。`!is_null`を使用しましょう。
`empty`も`中身のある配列`で挙動がおかしいので、素直に`if($var)`がよさそうです。
こちらも青字の`$var=0`、`$var="0"`と`$var=array(1)`には気を付けてください。


####公式の比較表
[PHP 型の比較表](https://www.php.net/manual/ja/types.comparisons.php)

LGTMお願いします！
ストックのついでにお願いします！
モチベーションがあがります！