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.
Aufgabe
EinfachLesen 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:
- Überprüfen Sie, ob es NICHT regnet (verwenden Sie den
!Operator) - Ü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) - Ü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 → falseisRaining && !hasUmbrella && !hasRaincoat→ true && true && false → falsetemperature >= 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
?>Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Alle Lektionen in Grundlagen
4Comparison & Logical Operators
Comparison OperatorsEquality & IdentityLogical Operators Part 1Logical Operators Part 2Recap - Simple Logic2Variables and Data Types
NumbersStrings and QuotesBooleansNaming ConventionsRecap - Variable InitEmpty VariablesString ConcatenationGetting User InputCast to Different Types5Conditional Logic
If StatementIf - ElseThe Ternary OperatorNull Coalescing OperatorSwitch StatementRecap - Making Decisions3Basic Operators
Arithmetic OperatorsModulo OperatorExponentiation OperatorCombined AssignmentIncrement/DecrementOperator PrecedenceRecap - Simple CalculationsString Operators