PHPの論理値について書いています。
論理値について解説した後に、他の値から変換するとどうなるかを書きました。
PHPの論理値とは?
PHPの論理値はtrueまたはfalseのどちらかの値です。
変数に入れて使うことができます。
プログラムを書いている中では、if文や三項演算子などで判定をするときに意識する必要があります。
例えば、下記のようなコードです。
<?php
$helloFlag = true;
if ($helloFlag) {
echo "こんにちは!";
}
$helloFlag
変数に論理値のtrueを入れています。
次の処理でif文で判定していますが、trueなのでif文の中の処理が実行されます。
結果、「こんにちは!」が出力されて処理が終わります。
このように変数に入れて使ったり、次項で書いている比較演算子の返り値として、論理値が返ってきます。
比較演算子と論理値
比較演算子で値を比較したときにも、論理値が返ってきます。
そのため、if文などで返り値を利用した分岐処理ができます。
<?php
$number = 10;
var_dump(5 < $number); // bool(true)
if (5 < $number) {
echo "numberは5より大きい!";
} else {
echo "numberが5より小さい!";
}
$number
変数に10を代入しています。
$number
変数を5と比較していますが、5より大きいので、trueが返ってきます。
var_dump関数で出力すると「bool(true)
」となり、論理値のtrueが返ってきていることが確認できました。
その後にif文で、同じ比較をしています。
trueになるため「numberは5より大きい!
」が出力されて処理が終わります。
このように比較演算子を使って判定したときにも論理値が返ってきています。
論理値の型は?
論理値を入れた変数の型は、論理型(boolean)になります。
下記のようにすると、コードで確認することができます。
<?php
$helloFlag = true;
echo gettype($helloFlag); // boolean
$helloFlag
変数にtrueを代入しました。
その次の処理で、gettype関数を使って、型を確認しています。
結果、「boolean」が返ってきています。
このように論理値の場合は、論理型(boolean)になっていることが確認できます。
論理値(boolean)に変換してみる
いろんな値を論理値に変換してみます。
boolキャストを使うことで、論理値に変換できます。
nullを変換
nullを変換すると、falseになります。
var_dump((bool) null); // bool(false)
数値の0を変換
数値の0を変換すると、falseになります。
var_dump((bool) 0); // bool(false)
数値を変換
数値の777を変換すると、trueになります。
var_dump((bool) 777); // bool(true)
ちなみにマイナス値もtrueになりました。
var_dump((bool) -1); // bool(true)
文字列を変換
文字列の「”hello”」はtrueになります。
var_dump((bool) "hello"); // bool(true)
空文字を変換
空文字の「””」はfalseになります。
var_dump((bool) ""); // bool(false)
配列を変換
配列はtrueになります。
var_dump((bool) ["apple", "banana", "grape"]); // bool(true)
空の配列を変換
何も入っていない、空の配列はfalseになりました。
var_dump((bool) []); // bool(false)
PHPの論理値についてまとめ
今回はPHPの論理値について書きました。
trueまたはfalseが論理値になって、論理値を変数に入れると、論理型の変数ができあがりました。
論理値を変換するときにはキャストを使いました。
表にまとめると、下記のようになります。
項目 | キャスト例 | 論理値 |
---|---|---|
null(ヌル) | (bool) false | false |
数値ゼロ | (bool) 0 | false |
数値 | (bool) 777 | true |
文字列 | (bool) “hello” | true |
空文字列 | (bool) “” | false |
配列 | (bool) [“apple”, “banana”, “grape”] | true |
空配列 | (bool) [] | false |
基本的になければfalseで、存在すればtrueといった感じですね。
数値はマイナス値でもtrueが返ってくるので、気をつけたいところです。
コメント