PHPプログラミング

ベストプラクティス

数値の扱い

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

  • このエントリーをはてなブックマークに追加

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

目次

  1. #  条件式で「真」になる数値と「偽」になる数値の区別をハッキリさせる
  2. #  様々な数値で確認

条件式で「真」になる数値と「偽」になる数値の区別をハッキリさせる

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

様々な数値で確認

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

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

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

実行例

<?php
$number = 1; 

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

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

$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」以下の数値も「真」です。

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

  • このエントリーをはてなブックマークに追加