概要
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 |