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:

  • && restituisce true solo 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:

  • || restituisce true se 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

OperatoreSignificatoEsempioRisultato
&&ANDtrue && falsefalse
||ORtrue || falsetrue
!NOT (negazione)!truefalse

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.

PrecedenzaOperatoreSignificato
1!NOT (negazione)
2&&AND
3||OR

Nota: puoi sempre usare le parentesi () per modificare l’ordine di valutazione.

Copertina: 50 Algoritmi per imparare PHP
📚 Consigliato per te

50 Algoritmi per imparare PHP

Una guida step by step per imparare PHP con esercizi svolti.

Vedi su Amazon

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:

  1. La precedenza dice che && viene valutato prima di ||.
  2. Quindi PHP calcola false && true → false.
  3. 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:

  1. Le parentesi vengono valutate prima: true || false → true.
  2. 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:

  1. ! ha la precedenza più alta → !false → true.
  2. Poi true && true → true.

Riepilogo regole di precedenza

Ricordiamo dunque le regole di precedenza:

  1. ! → prima viene calcolata la negazione.
  2. && → poi viene calcolato AND.
  3. || → alla fine viene calcolato OR.
  4. 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.

🐍

Vuoi imparare Python da zero?

Scarica la guida gratuita Python in 10 giorni: 10 lezioni pratiche con esempi ed esercizi, direttamente nella tua email.

📥 Scarica gratis il PDF →