Tabelle di confronto dei tipi PHP
Le seguenti tabelle dimostrano i comportamenti dei
tipi PHP e degli
operatori di confronto,
sia per confronti deboli che stretti. Questo
supplemento è anche correlato alla sezione del manuale su
type juggling.
L'ispirazione è stata fornita da vari commenti degli utenti e dal lavoro su
BlueShoes.
Prima di utilizzare queste tabelle, è importante comprendere i tipi e i loro
significati. Per esempio, "42" è una string
mentre 42 è un int. &false; è un
bool mentre "false" è una
string.
I Form HTML non passano interi, float o booleani; passano stringhe.
Per scoprire se una stringa è numerica, puoi usare
is_numeric.
Fare semplicemente if ($x) mentre $x è
non definito genererà un errore di livello E_NOTICE.
Invece, considera l'uso di empty o
isset e/o inizializza le tue variabili.
Alcune operazioni numeriche possono risultare in un valore rappresentato dalla costante
NAN. Qualsiasi confronto debole o stretto di questo valore
contro qualsiasi altro valore, incluso se stesso, ma eccetto &true;, avrà come risultato &false;.
(cioè NAN != NAN e NAN !== NAN)
Esempi di operazioni che producono NAN includono
sqrt(-1), asin(2) e
acosh(0).
Confronti di $x con funzioni PHPEspressionegettypeemptyis_nullissetbool : if($x)$x = "";string&true;&false;&true;&false;$x = null;NULL&true;&true;&false;&false;var $x;NULL&true;&true;&false;&false;$x non è definitaNULL&true;&true;&false;&false;$x = [];array&true;&false;&true;&false;$x = ['a', 'b'];array&false;&false;&true;&true;$x = false;bool&true;&false;&true;&false;$x = true;bool&false;&false;&true;&true;$x = 1;int&false;&false;&true;&true;$x = 42;int&false;&false;&true;&true;$x = 0;int&true;&false;&true;&false;$x = -1;int&false;&false;&true;&true;$x = "1";string&false;&false;&true;&true;$x = "0";string&true;&false;&true;&false;$x = "-1";string&false;&false;&true;&true;$x = "php";string&false;&false;&true;&true;$x = "true";string&false;&false;&true;&true;$x = "false";string&false;&false;&true;&true;
Confronti deboli con ==&true;&false;10-1"1""0""-1"&null;[]"php"""&true;&true;&false;&true;&false;&true;&true;&false;&true;&false;&false;&true;&false;&false;&false;&true;&false;&true;&false;&false;&true;&false;&true;&true;&false;&true;1&true;&false;&true;&false;&false;&true;&false;&false;&false;&false;&false;&false;0&false;&true;&false;&true;&false;&false;&true;&false;&true;&false;&false;*&false;*-1&true;&false;&false;&false;&true;&false;&false;&true;&false;&false;&false;&false;"1"&true;&false;&true;&false;&false;&true;&false;&false;&false;&false;&false;&false;"0"&false;&true;&false;&true;&false;&false;&true;&false;&false;&false;&false;&false;"-1"&true;&false;&false;&false;&true;&false;&false;&true;&false;&false;&false;&false;&null;&false;&true;&false;&true;&false;&false;&false;&false;&true;&true;&false;&true;[]&false;&true;&false;&false;&false;&false;&false;&false;&true;&true;&false;&false;"php"&true;&false;&false;&false;*&false;&false;&false;&false;&false;&false;&true;&false;""&false;&true;&false;&false;*&false;&false;&false;&false;&true;&false;&false;&true;
* &true; prima di PHP 8.0.0.
Confronti stretti con ===&true;&false;10-1"1""0""-1"&null;[]"php"""&true;&true;&false;&false;&false;&false;&false;&false;&false;&false;&false;&false;&false;&false;&false;&true;&false;&false;&false;&false;&false;&false;&false;&false;&false;&false;1&false;&false;&true;&false;&false;&false;&false;&false;&false;&false;&false;&false;0&false;&false;&false;&true;&false;&false;&false;&false;&false;&false;&false;&false;-1&false;&false;&false;&false;&true;&false;&false;&false;&false;&false;&false;&false;"1"&false;&false;&false;&false;&false;&true;&false;&false;&false;&false;&false;&false;"0"&false;&false;&false;&false;&false;&false;&true;&false;&false;&false;&false;&false;"-1"&false;&false;&false;&false;&false;&false;&false;&true;&false;&false;&false;&false;&null;&false;&false;&false;&false;&false;&false;&false;&false;&true;&false;&false;&false;[]&false;&false;&false;&false;&false;&false;&false;&false;&false;&true;&false;&false;"php"&false;&false;&false;&false;&false;&false;&false;&false;&false;&false;&true;&false;""&false;&false;&false;&false;&false;&false;&false;&false;&false;&false;&false;&true;