論理値の種類と使い方

論理型(boolean型)は PHP で用意されているデータ型の一つで、真を表す TRUE または偽を表す FALSE のいずれかの値を持ちます。 TRUE や FALSE のような値を論理値と呼びます。ここでは PHP における論理値について解説します。

論理値とは

論理値とは、PHPのデータ型の一つである論理型(boolean型)で扱われる値で、 TRUE(真)または FALSE(偽)の2つがあります。論理値は主に条件分岐で使われ、例えば if 文の条件式が成り立つ場合は TRUE、成り立たない場合は FALSE として扱われます。

論理値は主に比較演算子を使った式の評価結果として得られます。例えば $num == 10 という比較式では、変数の値が 10 と等しければ TRUE、等しくなければ FALSE になります。

if 文の条件式にはこのような比較式を記述することで、条件が TRUE の場合と FALSE の場合とで実行する処理を分けることができます。

次の例を見てください。 if 文の条件式は $num > 5 と記述されています。変数に格納されている値に応じて、この条件式は TRUE または FALSE を返しますので、その結果に応じて実行される処理が変わります。

$num = 10;
if ($num > 5){
  echo "条件式は TRUE でした";
}else{
  echo "条件式は FALSE でした";
}

論理値は大文字と小文字を区別しないため、 TRUE ではなく True や true でも同じです。また変数に論理値を代入することもできます。

$flag = TRUE;

if は条件式が TRUE か FALSE かで処理を振り分けていますので次のように記述することもできます。

$flag = TRUE;

if ($flag){
  // 条件式が真の時に実行する処理
}

論理値の型変換

PHPでは必要に応じて自動的にデータ型の変換が行われます。そのため、 if 文の条件式のように論理値が求められる場所に他のデータ型の値が記述された場合、自動的に論理値へ型変換されて評価されます。型変換の結果、 FALSE となる主な値は次の通りです。

FALSE
0(整数)
0.0(浮動小数点)
""(空文字)
"0"(文字列)
[](空配列)
NULL

上記以外の値はすべて TRUE として扱われます。例えば数値の 15 や文字列の "Hello" などは TRUE に変換されます。なお、オブジェクトはプロパティの有無に関係なく常に TRUE として扱われます。

$num = 8;

if ($num){
  // 条件式が真の時に実行する処理
}

上記では変数 num には数値の 8 が格納されていますので条件式は TRUE となります。

なお論理値を文字列に変換する場合、 TRUE は "1"、 FALSE は空文字 "" に変換されます。その為、 echo を使って論理値を出力しようとすると、いったん文字列に変換されるため次のような結果となります。

echo TRUE;   // "1"
echo FALSE;  // ""
サンプルコード

では簡単なプログラムで試してみます。

<?php
$ave = 84;
if ($ave > 70){
  echo "合格です";
}else{
  echo "不合格です";
}

作成したプログラムを sample.php として保存しました。その後でコマンドプロンプトを起動し、次のように実行しました。

php sample.php

論理値

if 文の条件式が TRUE になるか FALSE になるかで、実行する処理を分けています。

-- --

PHP における論理値について解説しました。

( Written by Tatsuo Ikura )

プロフィール画像

著者 / TATSUO IKURA

これから IT 関連の知識を学ばれる方を対象に、色々な言語でのプログラミング方法や関連する技術、開発環境構築などに関する解説サイトを運営しています。