Operatori logici Parte 2
Fa parte della sezione Fondamenti del percorso PHP di Coddy. Lezione 26 di 71.
L'operatore NOT (!) inverte un valore booleano, trasformandolo nel suo opposto. Se qualcosa è true, diventa false, e viceversa:
<?php
$isLoggedIn = false;
$showLoginButton = !$isLoggedIn;
var_dump($showLoginButton); // bool(true)
$isLoggedIn = true;
$showLoginButton = !$isLoggedIn;
var_dump($showLoginButton); // bool(false)
?>Puoi combinare più operatori logici in una singola espressione. Quando lo fai, usa le parentesi per rendere chiare le tue intenzioni:
<?php
$age = 25;
$hasTicket = true;
$isVIP = false;
// Può entrare se: ha un biglietto E (è maggiorenne O è VIP)
$canEnter = $hasTicket && ($age >= 18 || $isVIP);
var_dump($canEnter); // bool(true)
?>Senza parentesi, && viene valutato prima di ||. Tuttavia, usare le parentesi rende il codice più facile da leggere e previene gli errori. Quando combini gli operatori, raggruppa sempre le condizioni in modo logico per esprimere esattamente ciò che intendi.
Sfida
FacileLeggi quattro valori dall'input: un intero temperature, una stringa isRaining (o "true" o "false"), una stringa hasUmbrella (o "true" o "false") e una stringa hasRaincoat (o "true" o "false").
Converti i valori stringa in booleani confrontandoli con "true".
Valuta le seguenti tre condizioni e stampa il risultato di ciascuna usando var_dump(), ognuna su una nuova riga:
- Verifica se NON sta piovendo (usa l'operatore
!) - Verifica se la persona dovrebbe restare in casa: sta piovendo E non ha né un ombrello né un impermeabile (usa
!con entrambi gli oggetti) - Verifica se la persona può uscire comodamente: la temperatura è almeno 15 E (non sta piovendo OPPURE ha un ombrello o un impermeabile)
Esempio:
Se gli input sono 20, true, false e true, l'output dovrebbe essere:
bool(false)
bool(false)
bool(true)Spiegazione:
!isRaining→ !true → falseisRaining && !hasUmbrella && !hasRaincoat→ true && true && false → falsetemperature >= 15 && (!isRaining || hasUmbrella || hasRaincoat)→ true && (false || false || true) → true && true → true
Provalo tu
<?php
// Leggi i valori di input
$temperature = intval(fgets(STDIN));
$isRainingStr = trim(fgets(STDIN));
$hasUmbrellaStr = trim(fgets(STDIN));
$hasRaincoatStr = trim(fgets(STDIN));
// TODO: Converti i valori delle stringhe in booleani confrontandoli con "true"
// TODO: Valuta e stampa le tre condizioni usando var_dump():
// 1. Verifica se NON piove
// 2. Verifica se la persona deve rimanere in casa (piove E non ha né ombrello né impermeabile)
// 3. Verifica se la persona può uscire senza problemi
?>Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.
Tutte le lezioni di Fondamenti
4Operatori di confronto e logici
Operatori di confrontoUguaglianza e identitàOperatori logici Parte 1Operatori logici Parte 2Riepilogo - Logica semplice2Variabili e tipi di dati
NumeriStringhe e virgoletteValori booleaniConvenzioni di denominazioneRiepilogo - Inizializzazione delle variabiliVariabili vuoteConcatenazione di stringheAcquisire input dall'utenteConvertire in tipi diversi5Logica condizionale
Istruzione ifIf - elseL’operatore ternarioOperatore null coalescingIstruzione switchRiepilogo - Prendere decisioni3Operatori di base
Operatori aritmeticiOperatore moduloOperatore di elevamento a potenzaAssegnazione compostaIncremento/decrementoPrecedenza degli operatoriRiepilogo - calcoli sempliciOperatori per stringheEsercitati da solo: Compilatore PHP online