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 nivelulE_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, însă cu excepțiatrue
, va avea un rezultatfalse
. (de ex.NAN != NAN
șiNAN !== NAN
) Exemple de operații care producNAN
includsqrt(-1)
,asin(2)
șiacosh(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 |