Il passaggio da linguaggi rigidi come il C o il C++ a linguaggi non tipizzati come il PHP può causare qualche problema di adattamento, soprattutto nell’abituarsi a non dichiarare ed istanziare le variabili.
Come ben sappiamo infatti, nel PHP per utilizzare una variabile non si ha il bisogno di assegnargli il tipo di dato che andrà a contenere. Soprattutto in considerazione del fatto che durante il suo ciclo di vita, la variabile può contenere diversi tipi di dato senza mai aver bisogno di essere dichiarata.
Non molti però sanno che effettuare un controllo del tipo di dato con PHP è molto più semplice di quello che si può pensare.
Gli operatori di confronto conosciuti sono:
- a == b
- a != b 0ppure a <> b
- a < b
- a > b
- a <= b
- a >= b
Ce ne sono altri due non molto famosi che consentono di effettuare il controllo anche sul tipo di dato. Essi sono:
- a === b
- a !== b
a === b
Il primo operatore restituisce TRUE se e solo se a è uguale a b ed entrambe sono dello stesso tipo. Vediamo alcuni esempi per capire bene come funziona.
view source print?
01
//caso base. entrambe le variabili uguali ed intere
02
$a
= 5;
03
$b
= 5;
04
echo
$a
===
$b
;
//true
05
06
//entrambe le variabili intere ma con valore diverso
07
$a
= 5;
08
$b
= 2;
09
echo
$a
===
$b
;
//false
10
11
//valori uguali ma tipo di dato differente
12
//avrebbe restituito TRUE con ($a == $b)
13
$a
= 5;
14
$b
=
"5"
;
15
echo
$a
===
$b
;
//false
a !== b
L’operatore di confronto restituisce TRUE se a è diverso da b oppure se a è di tipo diverso da b. Anche in questo caso vediamo alcuni esempi.
view source print?
01
//caso base. entrambe le variabili uguali ed intere
02
$a
= 5;
03
$b
= 5;
04
echo
$a
!==
$b
;
//false
05
06
//entrambe le variabili intere ma con valore diverso
07
$a
= 5;
08
$b
= 2;
09
echo
$a
!==
$b
;
//true
10
11
//valori uguali ma tipo di dato differente
12
//avrebbe restituito FALSE con ($a != $b)
13
$a
= 5;
14
$b
=
"5"
;
15
echo
$a
!==
$b
;
//true