Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial
  • Lezione 14 di 67
  • livello intermedio
Indice lezioni

Operatori logici e di confronto in PHP

Impariamo ad utilizzare e combinare tra loro gli operatori logici, che consentono di determinare se la relazione tra due o più espressioni è vera, e di confronto, che permettono di determinare il valore di due espressioni in base al confronto tra i loro. valori.
Impariamo ad utilizzare e combinare tra loro gli operatori logici, che consentono di determinare se la relazione tra due o più espressioni è vera, e di confronto, che permettono di determinare il valore di due espressioni in base al confronto tra i loro. valori.
Link copiato negli appunti

Gli operatori logici e di confronto sono gli ultimi gruppi di operatori del PHP che verranno analizzati in questa trattazione e che possono essere utilizzati all'interno delle espressioni.

Operatori logici

Gli operatori logici consentono di determinare se la relazione tra due o più espressioni è vera (TRUE) o falsa (FALSE). L'unico operatore che fa eccezione a questa regola è l'operatore not che si occupa di negare il valore di un'espressione. Vediamo insieme quali sono gli operatori logici supportati dal PHP associando ad essi alcuni esempi del loro funzionamento:

Operatore Nome Esempio Risultato espressione
and oppure && and $x && $y Vera se e solo se entrambi i valori sono veri
or oppure || or $x || $y Vera se uno dei due valori è vero
xor xor $x xor $y Vera se uno dei due valori è vero e l'altro è falso
! not !$x Vera quando il singolo operando utilizzato è falso o viceversa

Come analizzato nelle lezioni precedenti, PHP, a differenza ad esempio del C, supporta il tipo di dato booleano, quindi il risultato di un'espressione tra operatori logici sarà a sua volta un booleano.

true && true;   //true
true && false;  //false
false && true;  //false
false && false;  //false
true || true;  //true
true || false;  //true
false || true;  //true
false || false;  //false
true xor true;  //false
true xor false;  //true
false xor true;  //true
false xor false;  //false
!true;  //false
!false;  //true

Nel caso in cui una delle espressioni sia intera, float o stringa, PHP si occupa di effettuare il casting automatico. Nel caso di valori maggiori di "1", l'espressione viene interpretata come valore "1"; a tel proposito è possibile analizzare il seguente esempio:

1 && true;  //true
2 && true;  //true
"2" && true;  //true
0 && true;  //false

Nel caso in cui un'espressione sia un array, invece, essa viene valutata come vera se e soltanto se l'array non è vuoto, altrimenti è falsa:

array() && true;  //false
array(1, 2, 3) && true;  //true

Operatori di confronto

Gli operatori di confronto consentono di determinare il valore di due espressioni in base al confronto tra i loro valori.

Operatore Nome Esempio Risultato espressione
== Uguale 5 == 5 Vera se entrambi i valori sono uguali
=== Identico 5 === 5 Vera se entrambi i valori sono uguali e dello stesso tipo
!= Non uguale 4 != 5 Vera se i due valori non sono uguali
!== Non identico 4 !== '4' Vera se i due valori sono diversi o se i tipi sono diversi
> Maggiore 5 > 4 Vera se il valore di sinistra è maggiore di quello di destra
< Minore 4 < 5 Vera se il valore di sinistra è minore di quello di destra
>= Maggiore o uguale 5 >= 4 Vera se il valore di sinistra è maggiore o uguale di quello di destra
<= Minore o uguale 4 <= 5 Vera se il valore di sinistra è minore o uguale a quello di destra

Alcuni esempi relativi a tali risultati potrebbero essere i seguenti:

5 == 5;  //true
5 === '5';  //false
5 !== '5';  //true
'10' > 6;  //true
5 > '0';  //true

I confronti possono essere effettuati anche con altri tipi di dato che non siano numerici, come ad esempio le stringhe. Nel caso delle stringhe il confronto viene fatto in base all'ordine alfabetico dei caratteri seguendo l'ordine:

  • caratteri maiuscoli;
  • caratteri minuscoli:
  • cifre.

Motivo per il quale si avrà:

$a = 'MAIUSCOLO';
$b = 'minuscolo';
$c = '10 cifra';
$a > $b;  //vero perché la stringa inizia per un carattere maiuscolo
$b > $c;  //vero perché un carattere minuscolo ha priorità su una cifra
$c > $a;  //false perché un carattere maiuscolo ha priorità
'B' > 'A'; //vero perché la A viene prima della B
'm' > 'N'; //falso perché una lettera maiuscola ha priorità rispetto ad una minuscola

Ti consigliamo anche