ITHACK
~ みんなのIT部門 ~

【PHP】論理式・比較演算子 – 2値の関係性を演算する

プログラミングには論理式の真偽を判定できます。
論理式は比較演算子と呼ばれる演算子を使って記述します。

ここでは論理式と比較演算子について解説します。

  • 論理値

  • 論理式

  • 比較演算子

論理値とは

論理値とは真偽を表す値のことです。
PHPでは論理値型(boolean)として扱われ、真(true)または偽(false)の2つの値があります。

次のコードで真偽値を確認しましょう。

<?php

// 論理値の真(true)
var_dump(true);

// 論理値の偽(false)
var_dump(false);

?>
bool(true)
bool(false)

※ var_dumpは括弧内に記述した変数や値の型や値、構造を出力する関数です。関数をご存知でない場合、ここでは記述方法だけ覚えておきましょう。

論理式とは

論理式は真偽値を判定するための式です。
例えば、変数$xがあるとき、『$xは10と等しいか』や『$xは3より大きいか』などを判定するための式です。

プログラム実行時に論理式の真偽値が判定されます。

比較演算子とは

比較演算子は論理式を記述するための演算子で、2つの変数または値の関係性を表します。
そして、関係が正しい場合は真(true)、正しくない場合は偽(false)として判定します。

また、関係とは、『等しいか』や『大きいか』などで、代表的な比較演算子は次になります。

比較演算子 関係性
== 値が等しい $x == 10
=== 値と型が等しい $x === 10
!= 値が等しくない $x != 10
<> 値が等しくない $x <> 10
!== 値または型が等しくない $x !== 10
< 値の大小関係(左オペランドが右オペランドより小さい) $x < 10
> 値の大小関係(左オペランドが右オペランドより大きい) $x > 10
<= 値の大小関係(左オペランドが右オペランド以下) $x <= 10
>= 値の大小関係(左オペランドが右オペランド以上) $x >= 10

基本構文

論理式の基本構文は次のようになります。

左オペランド 比較演算子 右オペランド

左オペランドと右オペランドの値が比較演算子で示す関係性であるかどうかを判定します。

サンプルコード

次のサンプルコードは『等しい』(==)、『より大きい』(>)、『より小さい』(<)を演算する論理式を使ったコードです。

<?php

$x = 10;

var_dump( $x == 10 );
var_dump( $x > 100 );
var_dump( $x < 123 );

?>
bool(true)
bool(false)
bool(true)

5行目、6行目、7行目で比較演算子を使って論理式を記述しています。

5行目の$x == 10では『$xが10と等しいか』を判定しています。
$xには10が記憶されているため、真(true)となります。

7行目の$x > 100では『$xが100より大きいか』を判定しています。
$xの値10は100より大きくないため、偽(false)となります。

10行目の$x < 123では『$xが123より小さいか』を判定しています。
$xの値は123より小さいため、真(true)となります。

また、論理式の判定結果は変数に代入することができます。
次のコードをご覧ください。

<?php

$x = 10;

$result1 = $x == 10;
var_dump( $result1 );

$result2 = $x > 100;
var_dump( $result2 );

$result3 = $x < 123;
var_dump( $result3 );

?>
bool(true)
bool(false)
bool(true)

5行目、8行目、11行目で論理式の判定結果を変数に代入しています。
実行結果から変数に値が記憶されていることが分かります。

他の演算子についても同じように記述することで、論理式を記述することができます。

演習問題

問題1

コマンドライン引数で与えた値が999以下かを判定するプログラムを作成してください。
なお、下記の条件を満たすものとします。

  • 判定結果はvar_dump関数で出力
$ php practice.php 1000
bool(false)

問題2

コマンドライン引数で与えた値が123ではないかを判定するプログラムを作成してください。
なお、下記の条件を満たすものとします。

  • 判定結果はvar_dump関数で出力
$ php practice.php 123
bool(false)

まとめ

論理式は真偽値を判定するための式で、比較演算子を使って式を作ります。
処理を分岐するための条件分岐などでは必須の知識となってくるので、覚えておきましょう。