Uguaglianza e identità
Fa parte della sezione Fondamenti del percorso PHP di Coddy. Lezione 24 di 71.
PHP offre due modi per verificare se i valori sono uguali: l'operatore di uguaglianza (==) e l'operatore di identità (===). Comprendere la differenza è fondamentale per scrivere codice affidabile.
L'operatore di uguaglianza (==) confronta i valori dopo averli convertiti nello stesso tipo. Questa operazione è chiamata «confronto debole»:
<?php
var_dump(5 == "5"); // bool(true) - string convertita in numero
var_dump(0 == false); // bool(true) - entrambi diventano 0
var_dump(1 == true); // bool(true) - entrambi diventano 1
?>L'operatore di identità (===) confronta sia il valore sia il tipo. Non avviene alcuna conversione, quindi entrambi devono corrispondere esattamente:
<?php
var_dump(5 === "5"); // bool(false) - int vs string
var_dump(5 === 5); // bool(true) - stesso tipo e valore
var_dump(0 === false); // bool(false) - int vs bool
?>Per i confronti di «diverso da», usa != (debole) o !== (rigoroso):
<?php
var_dump(5 != "5"); // bool(false) - i valori sono uguali
var_dump(5 !== "5"); // bool(true) - i tipi sono diversi
?>Come buona pratica, preferisci === e !== per evitare sorprese dovute a conversioni di tipo impreviste.
Sfida
FacileLeggi due valori dall'input: un numero (come stringa) e un intero.
Usa gli operatori di uguaglianza e identità per valutare i seguenti confronti e stampa il risultato di ciascuno su una nuova riga usando var_dump():
- Verifica se il valore stringa è uguale all'intero usando il confronto non rigoroso (
==) - Verifica se il valore stringa è uguale all'intero usando il confronto rigoroso (
===) - Verifica se il valore stringa è diverso dall'intero usando il confronto non rigoroso (
!=) - Verifica se il valore stringa è diverso dall'intero usando il confronto rigoroso (
!==)
Nota: Mantieni il primo valore come stringa (non convertirlo). Converti il secondo valore in un intero.
Esempio:
Se gli input sono 42 e 42, l'output dovrebbe essere:
bool(true)
bool(false)
bool(false)
bool(true)Spiegazione:
"42" == 42è vero (i valori sono uguali dopo la conversione del tipo)"42" === 42è falso (stringa vs int - tipi diversi)"42" != 42è falso (i valori sono uguali)"42" !== 42è vero (i tipi sono diversi)
Provalo tu
<?php
// Leggi l'input
$stringValue = trim(fgets(STDIN));
$intValue = intval(trim(fgets(STDIN)));
// TODO: Scrivi il tuo codice qui sotto
// Usa var_dump() per stampare il risultato di ogni confronto su una nuova riga:
// 1. Uguaglianza non rigorosa (==)
// 2. Uguaglianza rigorosa (===)
// 3. Disuguaglianza non rigorosa (!=)
// 4. Disuguaglianza rigorosa (!==)
?>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