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’;
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’;
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.