PHP PHP入門講座 プログラミング

【PHPプログラミング入門講座】論理型 (boolean型)

PHPプログラミングのキービジュアル

論理型(boolean型)

これまで変数のデータ型として、「数値型」と「文字列型」が登場しましたが、その他に「論理型(boolean型)」(※注1)というものがあります。
これは、値の真偽(正しい/違う)を表現するものです。
具体的に変数が取りうる値は、「true」または「false」の2つのみです。

※注1:booleanは「ブーリアン」と読みます。

論理型(boolean型)の変数の使用例

論理型(boolean型)の変数が使われる代表例として、if文があります。

前回の記事「【PHPプログラミング入門講座】条件分岐 (if文)」で、if文の構文は次であると説明しました。

if(条件) {
   条件を満たした場合の処理
 }

このif文の「条件」の部分には、論理型(boolean型)の変数を設定することができます。
サンプルプログラムを書きます。

<?php
  $isOK = true;
  if($isOK) {
    //$isOKがtrueの場合はここに来る
    echo '正解です。';
  } else {
    //$isOKがtrueでない場合はここに来る
    echo '不正解です。';
  }

上記プログラムの中にコメントを記述しましたが、if文の条件に設定された$isOKの値がtrueの場合は「正解です。」が表示されます。
$isOKの値がfalseの場合は「不正解です。」が表示されます。
実際にこのサンプルプログラムの$isOKの値をtrueやfalseに書き換えて結果が変わることをブラウザで確認してみてください。

比較演算子の正体

前回の記事「【PHPプログラミング入門講座】条件分岐 (if文)」で比較演算子「==」というものが登場しました。
結論を言うと、比較演算子「==」は、論理型(boolean型)の値を返す演算子です。
その証拠は、次のPHPプログラムで確認することができます。

<?php
  $num = 5;
  $result = ($num == 5);
  var_dump($result);

3行目の「$result = ($num == 5);」に注目してください。
これはどのような処理かというと、「まず『$num == 5』を処理して、次にその結果を左辺の変数$resultに代入する」処理です。
そして、最後にvar_dump関数で$resultの値を出力しています。
var_dump関数は、対象の変数の値とデータ型を知ることができる関数です。
(var_dump関数の詳しい説明は、以前の記事「【PHPプログラミング入門講座】数値と文字列の性質・デバッグ」をご覧ください。)

つまり、このPHPプログラムは「$num == 5」の実行結果の値とデータ型を知ることができます。

ブラウザで、このPHPプログラムを実行すると、次のように表示されます。

bool(true)

「bool」はboolean型という意味です。そして、値はtrueになっていす。

以上より、最初に言った結論のとおり、比較演算子「==」は、論理型(boolean型)の値を返す演算子であることが確認できました。

if文の条件を記述する( )の中に記述する内容

もう少し詳しく理解しましょう。
前述より、次のプログラムは、

if($num == 5) {
  echo '正解です。';
}

次のように書き換えることができます。

$result = ($num == 5);
if($result) {
  echo '正解です。';
}

変数$resultには、「$num == 5」の結果である論理型(boolean型)の値が代入されます。
それが、if文の条件を記述する( )に記述されています。
以上より、if文の条件を記述する( )の中身に、論理型(boolean型)の値、または処理すると論理型(boolean型)を返す式を記述していることが分かります(※注3)。

※注3:if文の条件に論理型(boolean型)の変数や式を記述するのは基本形です。その他のデータ型の変数や式を記述する場合もありますので、それについては今後説明します。

おわりに

今回は、if文の構造について理解を深めてもらうために、論理型(boolean型)について説明しました。
プログラムが徐々に長くなり、内容が難しくなってきた場合に、今回のような基本の考え方に立ち戻ると多くの場面で役立ちます。
だから、基本をしっかりと理解しておきましょう。

PHPプログラミング入門講座 〜 全記事一覧 〜

-PHP, PHP入門講座, プログラミング
-, , ,

Copyright© ハッピー・プログラミング・ライフ , 2020 All Rights Reserved.