Tabelele următoare demonstrează comportamentul tipurilor și operatorilor de comparare din PHP, pentru ambele tipuri de comparații — libere și stricte. Acest supliment de asemenea are legătură și cu secțiunea din manual despre jonglarea cu tipurile. Inspirația a fost adusă de diverse comentarii ale utilizatorilor și de lucrările de la » BlueShoes.
Înainte de a utiliza aceste tabele, este important de a întelege tipurile și
însemnătatea lor. Spre exemplu "42" este un string,
în timp ce 42 este un integer. FALSE este un
boolean, în timp ce "false" este un
string.
Notă:
Formularele HTML nu transmit tipuri integer, float, sau boolean; ele transmit string-uri. Pentru a afla dacă un string este numeric, puteți folosi is_numeric().
Notă:
Facând, pur și simplu, if ($x), în timp ce $x nu este definit va genera o eroare de nivelul
E_NOTICE. În loc, considerați utilizarea empty() sau isset() și/sau inițializați variabilele.
Notă:
Unele operații numerice pot da o valoare reprezentată de constanta
NAN. Orice comparații lejere sau stricte ale acestei valori cu orice altă valoare, inclusiv ea însăși, va avea un rezultatFALSE. (de ex. NAN != NAN și NAN !== NAN) Exemple de operații care producNANinclud sqrt(-1), asin(2) și asinh(0).
| Expresia | gettype() | empty() | is_null() | isset() | boolean : if($x) |
|---|---|---|---|---|---|
| $x = ""; | string | TRUE |
FALSE |
TRUE |
FALSE |
| $x = null; | NULL | TRUE |
TRUE |
FALSE |
FALSE |
| var $x; | NULL | TRUE |
TRUE |
FALSE |
FALSE |
| $x is undefined | NULL | TRUE |
TRUE |
FALSE |
FALSE |
| $x = array(); | array | TRUE |
FALSE |
TRUE |
FALSE |
| $x = array('a', 'b'); | array | FALSE |
FALSE |
TRUE |
TRUE |
| $x = false; | boolean | TRUE |
FALSE |
TRUE |
FALSE |
| $x = true; | boolean | FALSE |
FALSE |
TRUE |
TRUE |
| $x = 1; | integer | FALSE |
FALSE |
TRUE |
TRUE |
| $x = 42; | integer | FALSE |
FALSE |
TRUE |
TRUE |
| $x = 0; | integer | TRUE |
FALSE |
TRUE |
FALSE |
| $x = -1; | integer | 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 |
TRUE |
FALSE |
1 | 0 | -1 | "1" | "0" | "-1" | NULL |
array() | "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 |
TRUE |
TRUE |
| -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 |
| array() | FALSE |
TRUE |
FALSE |
FALSE |
FALSE |
FALSE |
FALSE |
FALSE |
TRUE |
TRUE |
FALSE |
FALSE |
| "php" | TRUE |
FALSE |
FALSE |
TRUE |
FALSE |
FALSE |
FALSE |
FALSE |
FALSE |
FALSE |
TRUE |
FALSE |
| "" | FALSE |
TRUE |
FALSE |
TRUE |
FALSE |
FALSE |
FALSE |
FALSE |
TRUE |
FALSE |
FALSE |
TRUE |
TRUE |
FALSE |
1 | 0 | -1 | "1" | "0" | "-1" | NULL |
array() | "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 |
| array() | 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 |