Menu
Coddy logo textTech

Logical Operators Part 2

Teil des Abschnitts Grundlagen der PHP-Journey von Coddy — Lektion 26 von 71.

Der NOT-Operator (!) kehrt einen booleschen Wert in seinen Gegensatz um. Wenn etwas true ist, wird es false, und umgekehrt:

<?php
$isLoggedIn = false;

$showLoginButton = !$isLoggedIn;
var_dump($showLoginButton); // bool(true)

$isLoggedIn = true;
$showLoginButton = !$isLoggedIn;
var_dump($showLoginButton); // bool(false)
?>

Sie können mehrere logische Operatoren in einem einzigen Ausdruck kombinieren. Wenn Sie dies tun, verwenden Sie Klammern, um Ihre Absichten klar zu machen:

<?php
$age = 25;
$hasTicket = true;
$isVIP = false;

// Kann eintreten, wenn: hat Ticket UND (ist Erwachsener ODER ist VIP)
$canEnter = $hasTicket && ($age >= 18 || $isVIP);
var_dump($canEnter); // bool(true)
?>

Ohne Klammern wird && vor || ausgewertet. Allerdings macht die Verwendung von Klammern Ihren Code leichter lesbar und verhindert Fehler. Beim Kombinieren von Operatoren sollten Sie Bedingungen immer logisch gruppieren, um genau auszudrücken, was Sie meinen.

challenge icon

Aufgabe

Einfach

Lesen Sie vier Werte von der Eingabe: eine Ganzzahl temperature, einen String isRaining (entweder "true" oder "false"), einen String hasUmbrella (entweder "true" oder "false") und einen String hasRaincoat (entweder "true" oder "false").

Wandeln Sie die String-Werte in Booleans um, indem Sie sie mit "true" vergleichen.

Bewerten Sie die folgenden drei Bedingungen und geben Sie das Ergebnis jeder mit var_dump() aus, jede in einer neuen Zeile:

  1. Überprüfen Sie, ob es NICHT regnet (verwenden Sie den ! Operator)
  2. Überprüfen Sie, ob die Person drinnen bleiben sollte: es regnet UND sie haben weder einen Schirm noch einen Regenmantel (verwenden Sie ! bei beiden Gegenständen)
  3. Überprüfen Sie, ob die Person bequem nach draußen gehen kann: die Temperatur beträgt mindestens 15 UND (es regnet nicht ODER sie haben einen Schirm oder Regenmantel)

Beispiel:

Wenn die Eingaben 20, true, false und true sind, sollte die Ausgabe sein:

bool(false)
bool(false)
bool(true)

Erklärung:

  • !isRaining → !true → false
  • isRaining && !hasUmbrella && !hasRaincoat → true && true && false → false
  • temperature >= 15 && (!isRaining || hasUmbrella || hasRaincoat) → true && (false || false || true) → true && true → true

Spickzettel

Der NOT-Operator (!) kehrt einen booleschen Wert in seinen Gegensatz um:

<?php
$isLoggedIn = false;
$showLoginButton = !$isLoggedIn;
var_dump($showLoginButton); // bool(true)

$isLoggedIn = true;
$showLoginButton = !$isLoggedIn;
var_dump($showLoginButton); // bool(false)
?>

Sie können mehrere logische Operatoren in einem einzigen Ausdruck kombinieren. Verwenden Sie Klammern, um Ihre Absichten klar zu machen:

<?php
$age = 25;
$hasTicket = true;
$isVIP = false;

// Kann eintreten, wenn: hat Ticket UND (ist Erwachsener ODER ist VIP)
$canEnter = $hasTicket && ($age >= 18 || $isVIP);
var_dump($canEnter); // bool(true)
?>

Ohne Klammern wird && vor || ausgewertet. Allerdings macht die Verwendung von Klammern Ihren Code leichter lesbar und verhindert Fehler.

Probier es selbst

<?php
// Eingabewerte lesen
$temperature = intval(fgets(STDIN));
$isRainingStr = trim(fgets(STDIN));
$hasUmbrellaStr = trim(fgets(STDIN));
$hasRaincoatStr = trim(fgets(STDIN));

// TODO: Konvertiere String-Werte zu Booleans, indem du sie mit "true" vergleichst


// TODO: Bewerte und drucke die drei Bedingungen mit var_dump():
// 1. Überprüfe, ob es NICHT regnet
// 2. Überprüfe, ob die Person drinnen bleiben sollte (regnet UND kein Schirm UND kein Regenmantel)
// 3. Überprüfe, ob die Person bequem nach draußen gehen kann

?>
quiz iconTeste dich selbst

Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.

Alle Lektionen in Grundlagen