PHPプログラミング

レシピ

数値

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

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

この記事のポイント

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

目次

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

条件式において、「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」以下の数値も「」です。

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

こちらの記事は役に立ちましたか?

ありがとうございます。
もしよろしければ、あわせてフィードバックや要望などをご入力ください。

ありがとうございます。
コメントを送信しました。