PHP

条件式における数値の真偽について

  1. 最終更新日:
  2. 公開日:

関数などの返り値として受け取った数値を、そのままif文やwhile文の条件式に使うシーンがあると思います。しかし意外に、条件式で「真」とされる数値と、「偽」になる数値の区別は曖昧なことがあります。今回は様々な数値を使い、条件式でどう判断されるかを調査しました。

この記事のポイント

  • どの数値が条件式で真(true)/偽(false)となるかが分かる
  • 浮動小数点数の場合の真(true)/偽(false)も分かる

条件式で「真」になる数値と「偽」になる数値を確認する

条件式において、「1」はtrueとして判断され、「0」はfalseと判断されることはご存知の方も多いと思います。
でも、「-1」は?「0.0」や「1.0」の浮動小数点数は?
これらの数値について、今回はどの値が「真」となり、どの値は「偽」となるか、コードを動かしながら確認していきます。

様々な数値で確認

真偽の確認にあたって、次のようなシンプルなif文を使用します。

PHP コード例

if( $number ) {
  echo 'True';
} else {
  echo 'False';
}

$numberに様々な数値を入れて、「True」と「False」のどちらが出力されるかで真偽の判定を調べます。

PHP コード例

<?php
$number = 1; 

if( $number ) {
  echo 'True'; // Trueが出力される
} else {
  echo 'False';
}

「1」以外の値も試した結果、次のような結果になりました。

PHP コード例

$number = 1;    // True
$number = 0;    // False
$number = -1;   // True
$number = 2;    // True
$number = 100;  // True
$number = 1.0;  // True
$number = 0.0;  // False

「0」であれば「偽」、それ以外の値は「真」となることが分かりました。

「0」は整数(Integer)、浮動小数点数(Float)に関わらず「偽」になります。
「-1」は「偽」になるかと思いきや、「真」となりました。
もちろん「-1」以下の数値も「真」です。

以上、条件式における数値の真偽についてでした。

記事一覧