導入
条件をもっと細かく指定したいことがあります。「18歳以上 かつ 会員である」のように、複数の条件を組み合わせるのが論理演算子です。
説明
論理演算子は &&(かつ/AND)、||(または/OR)、!(〜でない/NOT)です。
<?php
$age = 20;
$isMember = true;
if ($age >= 18 && $isMember) {
echo "入場できます\n";
} else {
echo "入場できません\n";
}
true(真)と false(偽)は「はい/いいえ」を表す値で、**真偽値(bool)**と呼びます。条件式の結果はこの真偽値です。
もう1つ大事なのが、等しさの比べ方です。PHP には == と === の2種類があります。
<?php
var_dump(1 == "1"); // true : 値だけを比べる(型を自動でそろえる)
var_dump(1 === "1"); // false: 値と型の両方を比べる(数値 1 と文字列 "1" は別物)
var_dump() は、値と型(int や string など)をデバッグ用に詳しく表示する関数です。== は型を自動変換してから比べるので思わぬ結果になりがちです。迷ったら ===(厳密比較)を使うのが安全、と覚えておきましょう。
やってみよう
$age や $isMember を書き換えて、入場の可否が変わることを確かめましょう。var_dump の行の値も変えて、== と === の違いを観察してみてください。
演習
変数 $hour(0〜23の時刻)を作り、6 以上 18 未満なら "昼です"、それ以外は "夜です" と表示してください。
ヒント1を見る
「6以上 かつ 18未満」は $hour >= 6 && $hour < 18 と書きます。