Gli operatori logici combinano valori booleani (true o false) e restituiscono un booleano.
1. Operatore AND (&&)
<?php
$a = true;
$b = false;
echo "true && false = ";
var_dump($a && $b);
echo "true && true = ";
var_dump(true && true);
?>
Output:
true && false = bool(false)
true && true = bool(true)
Spiegazione:
&&restituiscetruesolo se entrambe le condizioni sono true.
2. Operatore OR (||)
<?php
$x = true;
$y = false;
echo "true || false = ";
var_dump($x || $y);
echo "false || false = ";
var_dump(false || false);
?>
Output:
true || false = bool(true)
false || false = bool(false)
Spiegazione:
||restituiscetruese almeno una condizione è true.
3. Operatore NOT (!)
<?php
$val = true;
echo "!true = ";
var_dump(!$val);
$val2 = false;
echo "!false = ";
var_dump(!$val2);
?>
Output:
!true = bool(false)
!false = bool(true)
Spiegazione:
!inverte il valore booleano.
4. Combinazioni logiche
<?php
$a = true;
$b = false;
$c = true;
echo "(a && b) || c = ";
var_dump(($a && $b) || $c);
echo "!(a || b) = ";
var_dump(!($a || $b));
?>
Output:
(a && b) || c = bool(true)
!(a || b) = bool(false)
Spiegazione:
- Prima si calcola l’operatore tra parentesi, poi si applicano gli altri operatori.
- Le parentesi sono utili per chiarire l’ordine delle operazioni.
Riepilogo Operatori Logici
| Operatore | Significato | Esempio | Risultato |
|---|---|---|---|
&& | AND | true && false | false |
| || | OR | true || false | true |
! | NOT (negazione) | !true | false |
Precedenza degli operatori logici in PHP
In PHP, quando combini più operatori logici, alcuni vengono valutati prima di altri.
Se non usi le parentesi, PHP segue le regole di precedenza.
| Precedenza | Operatore | Significato |
|---|---|---|
| 1 | ! | NOT (negazione) |
| 2 | && | AND |
| 3 | || | OR |
Nota: puoi sempre usare le parentesi () per modificare l’ordine di valutazione.

50 Algoritmi per imparare PHP
Una guida step by step per imparare PHP con esercizi svolti.
Esempio pratico senza parentesi
<?php
$a = true;
$b = false;
$c = true;
$result = $a || $b && $c;
echo "true || false && true = ";
var_dump($result);
?>
Output:
true || false && true = bool(true)
Spiegazione passo passo:
- La precedenza dice che
&&viene valutato prima di||. - Quindi PHP calcola
false && true→false. - Poi calcola
true || false→true.
Esempio con parentesi
<?php
$a = true;
$b = false;
$c = true;
$result = ($a || $b) && $c;
echo "(true || false) && true = ";
var_dump($result);
?>
Output:
(true || false) && true = bool(true)
Spiegazione:
- Le parentesi vengono valutate prima:
true || false→true. - Poi
true && true→true.
Esempio con NOT
<?php
$a = false;
$b = true;
$result = !$a && $b;
echo "!false && true = ";
var_dump($result);
?>
Output:
!false && true = bool(true)
Spiegazione:
!ha la precedenza più alta →!false→true.- Poi
true && true→true.
Riepilogo regole di precedenza
Ricordiamo dunque le regole di precedenza:
!→ prima viene calcolata la negazione.&&→ poi viene calcolato AND.||→ alla fine viene calcolato OR.- Parentesi
()→ cambiano sempre l’ordine e hanno la precedenza più alta.
In questa lezione abbiamo affrontato gli operatori logici in PHP, imparando come combinare condizioni e controllare il flusso delle decisioni all’interno del codice. Abbiamo visto esempi pratici di AND, OR, NOT e XOR, e come gestire la precedenza tra più operatori.
Nella prossima lezione ci concentreremo sulle istruzioni condizionali, imparando a usare if, else e elseif per far reagire il programma a situazioni diverse in modo dinamico e controllato.