PHP - 比較演算子と boolean
公開日:2020-12-22 更新日:2020-12-22
[PHP]
1. 概要
等号や不等号などの比較演算子を使って、2つの値を比較することができます。
比較した結果は、その式が成り立つ時は true、成り立たない時は false になります。
この true と false は、数値や文字列ではなく、boolean(または bool)と言う型になります。
比較演算子の結果(boolean)を変数に代入することもできます。
true や false を直接変数に代入することもできます。
比較した結果は、その式が成り立つ時は true、成り立たない時は false になります。
この true と false は、数値や文字列ではなく、boolean(または bool)と言う型になります。
var_dump( 10 > 1 );
var_dump( 10 < 1 );
実行結果bool(true)
bool(false)
比較演算子の結果(boolean)を変数に代入することもできます。
$a = 10 > 1;
var_dump($a);
実行結果bool(true)
true や false を直接変数に代入することもできます。
$a = true;
var_dump($a);
実行結果bool(true)
2. 比較演算子
演算子 | 説明 |
---|---|
> | > 左辺が右辺より大きい場合 true |
>= | ≧ 左辺が右辺より大きいか等しい場合 true |
== | = 左辺と右辺が等しい場合 true。= が1つだと代入として扱われるので要注意。 |
<= | ≦ 左辺が右辺より小さいか等しい場合 true |
< | < 左辺が右辺より小さい場合 true |
!= | ≠ 左辺と右辺が異なる場合 true |
=== | 厳格な == |
!== | 厳格な != |
<=> | 宇宙船演算子 |
3. 宇宙船演算子
左辺と右辺を比較して、
左辺が大きければ 1、
右辺が大きければ -1、
等しい場合 0 になります。
左辺が大きければ 1、
右辺が大きければ -1、
等しい場合 0 になります。
var_dump(10 <=> 1);
var_dump(10 <=> 5);
var_dump(10 <=> 10);
var_dump(10 <=> 15);
var_dump(10 <=> 20);
実行結果int(1)
int(1)
int(0)
int(-1)
int(-1)
4. 厳格な比較
文字列と数値を == で比較した場合、自動的に文字列が数値に変換されて比較されます。
型を含めて厳格な比較をしたい場合は、=== を使います。
厳格に異なることを確認したい場合は、!== を使います。
また、空文字「""」、false、null、0、"0" は、== で比較すると、同じものとして判定される場合があります。
厳格な比較をする場合は、=== を使ってください。
型を含めて厳格な比較をしたい場合は、=== を使います。
var_dump('123' == 123);
var_dump('123' === 123);
実行結果bool(true)
bool(false)
厳格に異なることを確認したい場合は、!== を使います。
var_dump('123' != 123);
var_dump('123' !== 123);
実行結果bool(false)
bool(true)
また、空文字「""」、false、null、0、"0" は、== で比較すると、同じものとして判定される場合があります。
厳格な比較をする場合は、=== を使ってください。
var_dump(0 == 0);
var_dump(0 == "0");
var_dump(0 == null);
var_dump(0 == false);
var_dump(0 == "");
実行結果bool(true)
bool(true)
bool(true)
bool(true)
bool(false)
5. 文字列の比較
文字列の比較も行えます。
比較は文字コード(数値)で行われています。
比較は文字コード(数値)で行われています。
var_dump("a" > "z");
var_dump("z" > "a");
var_dump("zzz" > "aaa");
var_dump("aaa1" > "aaa2");
var_dump("abc" == "abc");
実行結果bool(false)
bool(true)
bool(true)
bool(false)
bool(true)
6. 否定
bool の値の前に「!」を付けると、true と false を反転します。
また、比較演算子の前に「!」を付けることもできます。
次の例では、$v が 10 以上でないなら true になります。
$a = false;
$a = !$a;
var_dump($a);
$a = !$a;
var_dump($a);
実行結果bool(true)
bool(false)
また、比較演算子の前に「!」を付けることもできます。
次の例では、$v が 10 以上でないなら true になります。
$v = 1;
var_dump( !($v >= 10) );
実行結果bool(true)