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.

Nota:

I Form HTML non passano interi, float o booleani; passano stringhe. Per scoprire se una stringa è numerica, puoi usare is_numeric().

Nota:

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.

Nota:

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 PHP
Espressione gettype() empty() is_null() isset() bool : if($x)
$x = ""; string true false true false
$x = null; NULL true true false false
var $x; NULL true true false false
$x non è definita NULL 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 1 0 -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 1 0 -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