Menu
Coddy logo textTech

論理演算子 パート1

CoddyのPHPジャーニー「基礎」セクションの一部。レッスン 25/71。

論理演算子を使うと、複数のブール式を1つに組み合わせることができます。これは、複数のconditionを同時に確認する必要がある場合に不可欠です。

AND 演算子&&)は、both の条件が true の場合にのみ true を返します。

<?php
$age = 25;
$hasLicense = true;

$canDrive = $age >= 18 && $hasLicense;
var_dump($canDrive); // bool(true)

$age = 16;
$canDrive = $age >= 18 && $hasLicense;
var_dump($canDrive); // bool(false) - 年齢条件が失敗
?>

OR演算子||)は、at least 1つの条件が真の場合にtrueを返します。

<?php
$isWeekend = true;
$isHoliday = false;

$dayOff = $isWeekend || $isHoliday;
var_dump($dayOff); // bool(true) - 週末が true

$isWeekend = false;
$dayOff = $isWeekend || $isHoliday;
var_dump($dayOff); // bool(false) - 両方とも false
?>

&& は「両方とも true でなければならない」、|| は「少なくとも 1 つが true でなければならない」と考えてください。次のレッスンでは、NOT 演算子と複数の論理演算子を組み合わせる方法について学びます。

challenge icon

チャレンジ

簡単

入力から4つの値を読み取ります:整数の age、文字列の hasTicket"true" または "false")、文字列の isMember"true" または "false")、文字列の hasInvitation"true" または "false")。

文字列の値を "true" と比較して、ブール値に変換します。

次の2つの条件を評価し、それぞれの結果を var_dump() を使って、新しい行に1つずつ出力します:

  1. その person が event に入場できるかを確認します:少なくとも18歳であり、チケットを持っている必要があります AND
  2. その person が無料で入場できるかを確認します:member であるか、invitation を持っている必要があります OR

例:

入力が 25truefalsetrue の場合、出力は次のようになります:

bool(true)
bool(true)

説明:

  • 25 >= 18 AND hasTicket は true → true
  • isMember は false OR hasInvitation は true → true

自分で試してみよう

<?php
// 入力値を読み取る
$age = intval(fgets(STDIN));
$hasTicket = trim(fgets(STDIN));
$isMember = trim(fgets(STDIN));
$hasInvitation = trim(fgets(STDIN));

// TODO: 文字列の値を "true" と比較することでブール値に変換する


// TODO: その人がイベントに入場できるか確認する(18歳以上 AND チケットを持っている)


// TODO: その人が無料入場できるか確認する(メンバーである OR 招待状を持っている)


// 結果を var_dump() を使って出力する

?>
quiz icon腕試し

このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。

基礎のすべてのレッスン

自分で練習してみよう: PHPオンラインコンパイラ