Opérateurs logiques — Partie 2
Fait partie de la section Fondamentaux du Journey PHP de Coddy. Leçon 26 sur 71.
L'opérateur NOT (!) inverse une valeur booléenne en son opposé. Si quelque chose est true, cela devient false, et vice versa :
<?php
$isLoggedIn = false;
$showLoginButton = !$isLoggedIn;
var_dump($showLoginButton); // bool(true)
$isLoggedIn = true;
$showLoginButton = !$isLoggedIn;
var_dump($showLoginButton); // bool(false)
?>Vous pouvez combiner plusieurs opérateurs logiques dans une seule expression. Lorsque vous le faites, utilisez des parenthèses pour rendre vos intentions claires :
<?php
$age = 25;
$hasTicket = true;
$isVIP = false;
// Peut entrer si : a un billet ET (est adulte OU est VIP)
$canEnter = $hasTicket && ($age >= 18 || $isVIP);
var_dump($canEnter); // bool(true)
?>Sans parenthèses, && est évalué avant ||. Cependant, l'utilisation de parenthèses rend votre code plus facile à lire et prévient les erreurs. Quand vous combinez des opérateurs, regroupez toujours les conditions logiquement pour exprimer exactement ce que vous voulez dire.
Défi
FacileLisez quatre valeurs depuis l'entrée : un entier temperature, une chaîne isRaining (soit "true" ou "false"), une chaîne hasUmbrella (soit "true" ou "false"), et une chaîne hasRaincoat (soit "true" ou "false").
Convertissez les valeurs de chaîne en booléens en les comparant à "true".
Évaluez les trois conditions suivantes et affichez le résultat de chacune en utilisant var_dump(), chacune sur une nouvelle ligne :
- Vérifiez s'il NE pleut PAS (utilisez l'opérateur
!) - Vérifiez si la personne devrait rester à l'intérieur : il pleut ET ils n'ont ni parapluie ni imperméable (utilisez
!avec les deux articles) - Vérifiez si la personne peut sortir confortablement : la température est au moins 15 ET (il ne pleut pas OU ils ont un parapluie ou un imperméable)
Exemple :
Si les entrées sont 20, true, false, et true, la sortie devrait être :
bool(false)
bool(false)
bool(true)Explication :
!isRaining→ !true → falseisRaining && !hasUmbrella && !hasRaincoat→ true && true && false → falsetemperature >= 15 && (!isRaining || hasUmbrella || hasRaincoat)→ true && (false || false || true) → true && true → true
Essayez vous-même
<?php
// Lire les valeurs d'entrée
$temperature = intval(fgets(STDIN));
$isRainingStr = trim(fgets(STDIN));
$hasUmbrellaStr = trim(fgets(STDIN));
$hasRaincoatStr = trim(fgets(STDIN));
// TODO: Convertir les valeurs de chaîne en booléens en les comparant à "true"
// TODO: Évaluer et imprimer les trois conditions en utilisant var_dump():
// 1. Vérifier s'il ne pleut pas
// 2. Vérifier si la personne devrait rester à l'intérieur (pleut ET pas de parapluie ET pas d'imperméable)
// 3. Vérifier si la personne peut sortir confortablement
?>Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.
Toutes les leçons de Fondamentaux
4Opérateurs de comparaison et logiques
Opérateurs de comparaisonÉgalité et identitéOpérateurs logiques — Partie 1Opérateurs logiques — Partie 2Récapitulatif — Logique simple2Variables et types de données
NombresChaînes et guillemetsBooléensConventions de nommageRécapitulatif - initialisation des variablesVariables videsConcaténation de chaînesObtenir une saisie utilisateurConvertir vers différents types5Logique conditionnelle
Instruction ifIf - ElseOpérateur ternaireOpérateur de coalescence nulleInstruction switchRécapitulatif - Prendre des décisions3Opérateurs de base
Opérateurs arithmétiquesOpérateur moduloOpérateur d’exponentiationAffectation combinéeIncrémentation/DécrémentationPriorité des opérateursRécapitulatif - Calculs simplesOpérateurs sur les chaînesEntraînez-vous par vous-même : Compilateur PHP en ligne