概要
PHPの値の論理値は以下の通り。
false |
true |
|
| 予約語 | false, FALSE, null, NULL |
true, TRUE |
int |
0 |
0以外 |
float |
0.0 |
0.0以外 |
string |
'', '0' |
左記以外 |
isset(val) |
undefined, null |
左記以外 |
予約語~true, false, null
true, TRUEはtrue、false, FALSEはfalse、null, NULLもfalse。
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
if (true) echo '(true) -> true '; // (true) -> true if (TRUE) echo '(TRUE) -> true'; // (TRUE) -> true if (false) ; else echo '(false) -> false'; // (false) -> false if (FALSE) ; else echo '(FALSE) -> false'; // (FALSE) -> false if (null) ; else echo '(null) -> false'; // (null) -> false if (NULL) ; else echo '(NULL) -> false'; // (NULL) -> false |
整数~int
int型の整数は0だけがfalse、その他はtrue。
|
1 2 3 4 5 6 7 8 9 10 11 |
if (1) echo '(1) -> true'; // (1) -> true if (2) echo '(2) -> true'; // (2) -> true if (0) ; else echo '(0) -> false'; // (0) -> false if (-3) echo '(-3) -> true'; // (-3) -> true |
実数~float
float型の実数は正確に0.0のときだけfalse、その他はtrue。
|
1 2 3 4 5 6 7 8 9 10 11 |
if (1.0) echo '(1.0) -> true'; // (1.0) -> true if (0.0) ; else echo '(0.0) -> false'; // (0.0) -> false if (PHP_FLOAT_MIN) echo '(PHP_FLOAT_MIN) - >true'; // (PHP_FLOAT_MIN) - >true if (-1.0) echo '(-1.0) -> true'; // (-1.0) -> true |
文字列~string
string型は空文字列('')及び'0'がfalse。その他の文字列はtrue('0.0‘もtrue)。
|
1 2 3 4 5 6 7 8 9 10 11 |
if ('a') echo '(a) -> true'; // (a) -> true if ('') ; else echo "('') -> false"; // ('') -> false if ('0') ; else echo "('0') -> false"; // ('0') -> false if ('0.0') echo "('0.0') -> true"; // ('0.0') -> true |
issetによる未定義変数とnullの評価
未定義の変数をそのまま評価すると、Undefinedエラーとなった上でfalseと評価される。
|
1 2 3 |
if ($undefined) echo 'true'; else echo 'false'; // Notice: Undefined variable |
未定義の変数をisset()関数を通して評価するとfalse。
|
1 2 3 |
if (isset($undefined)) echo 'true'; else echo 'false'; // false |
変数の内容がnullの時もisset()関数の評価はfalse。
|
1 2 3 4 |
$null = null; if (isset($null)) echo 'true'; else echo 'false'; // false |