Menu
Coddy logo textTech

Logical Operators Part 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.

challenge icon

Défi

Facile

Lisez 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 :

  1. Vérifiez s'il NE pleut PAS (utilisez l'opérateur !)
  2. 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)
  3. 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 → false
  • isRaining && !hasUmbrella && !hasRaincoat → true && true && false → false
  • temperature >= 15 && (!isRaining || hasUmbrella || hasRaincoat) → true && (false || false || true) → true && true → true

Aide-mémoire

L'opérateur NOT (!) inverse une valeur booléenne en son opposé :

<?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. Utilisez des parenthèses pour rendre vos intentions claires :

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

// Can enter if: has ticket AND (is adult OR is 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.

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

?>
quiz iconTestez-vous

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