Menu
Coddy logo textTech

Logical Operators Part 2

Parte de la sección Fundamentos del Journey de PHP de Coddy — lección 26 de 71.

El operador NOT (!) invierte un valor booleano a su opuesto. Si algo es true, se convierte en false, y viceversa:

<?php
$isLoggedIn = false;

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

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

Puedes combinar múltiples operadores lógicos en una sola expresión. Cuando lo hagas, usa paréntesis para hacer claras tus intenciones:

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

// Puede entrar si: tiene entrada Y (es adulto O es VIP)
$canEnter = $hasTicket && ($age >= 18 || $isVIP);
var_dump($canEnter); // bool(true)
?>

Sin paréntesis, && se evalúa antes que ||. Sin embargo, usar paréntesis hace que tu código sea más fácil de leer y previene errores. Al combinar operadores, siempre agrupa las condiciones lógicamente para expresar exactamente lo que quieres decir.

challenge icon

Desafío

Fácil

Lee cuatro valores de entrada: un entero temperature, una cadena isRaining (ya sea "true" o "false"), una cadena hasUmbrella (ya sea "true" o "false"), y una cadena hasRaincoat (ya sea "true" o "false").

Convierte los valores de cadena a booleanos comparándolos con "true".

Evalúa las siguientes tres condiciones e imprime el resultado de cada una usando var_dump(), cada una en una nueva línea:

  1. Verifica si NO está lloviendo (usa el operador !)
  2. Verifica si la persona debería quedarse adentro: está lloviendo Y no tiene ni un paraguas ni un impermeable (usa ! con ambos elementos)
  3. Verifica si la persona puede salir cómodamente: la temperatura es al menos 15 Y (no está lloviendo O tiene un paraguas o impermeable)

Ejemplo:

Si las entradas son 20, true, false, y true, la salida debería ser:

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

Explicación:

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

Hoja de referencia

El operador NOT (!) invierte un valor booleano a su opuesto:

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

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

Puedes combinar múltiples operadores lógicos en una sola expresión. Usa paréntesis para aclarar tus intenciones:

<?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)
?>

Sin paréntesis, && se evalúa antes que ||. Sin embargo, usar paréntesis hace que tu código sea más fácil de leer y previene errores.

Pruébalo tú mismo

<?php
// Leer valores de entrada
$temperature = intval(fgets(STDIN));
$isRainingStr = trim(fgets(STDIN));
$hasUmbrellaStr = trim(fgets(STDIN));
$hasRaincoatStr = trim(fgets(STDIN));

// TODO: Convertir valores de cadena a booleanos comparándolos con "true"


// TODO: Evaluar e imprimir las tres condiciones usando var_dump():
// 1. Verificar si NO está lloviendo
// 2. Verificar si la persona debería quedarse adentro (llueve Y no hay paraguas Y no hay impermeable)
// 3. Verificar si la persona puede salir cómodamente

?>
quiz iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

Todas las lecciones de Fundamentos