17 – 18 Comparatori loose (deboli) e strict (forti)

Proviamo a fare un confronto stringa numero con un if

if ("001" == 1)
echo "Uguali";
else
echo "Diversi";

A differenza di altri linguaggi, il php è più largo di maniche nei confronti, se volessimo confrontare con l’operatore di uguaglianza == (di tipo loose) con uno che invece confronta in maniera totalmente identica, devo aggiungere un uguale: === (di tipo strict).

Stessa cosa per il diverso != diventa in strict !== .
quindi:

if ("001" === 1)
echo "Uguali";
else
echo "Diversi";

Il programma risponde Diversi perché il confronto è ristretto e quindi anche il tipo deve essere uguale.
Ecco alcune esempi sugli operatori di confronto debole:

if  (null == “” ) echo ‘null = stringa vuota’;
if  (“0” == “” ) echo ‘null = stringa vuota’;
if  (0 == “” ) echo ‘null = stringa vuota’;

Lo stesso confronto con l’operatore strict

if  (null == “” ) echo ‘null = stringa vuota’;
if  (“0” == “” ) echo ‘null = stringa vuota’;
if  (0 == “” ) echo ‘null = stringa vuota’;

sul sito ufficiale di php trova delle tabelle comparative tra i comparatori loose e strict, a seconda di alcuni valori.

http://php.net/manual/en/types.comparisons.php