boolean

Il tipo di dato booleano può assumere solo due valori: true e false.

integer

Il tipo di dato integer è un numero appartenente all'insieme Z dei numeri interi relativi.

float

Il tipo di dato float è un numero con la virgola mobile.

string

Il tipo di dato stringa è una serie di caratteri.

array

Il tipo di dato array è un insieme di coppie chiave valore.

object

Il tipo di dato object rappresenta un'istanza di una classe nella programmazione orientata agli oggetti.

resource

Il tipo di dato resource rappresenta un riferimento ad una risorsa esterna (un database, un file ecc...).

NULL

Il tipo di dato NULL rappresenta una variabile senza valore. Non sono tipi di dato NULL le variabili che valgono 0, FALSE o stringhe vuote.

Type juggling e type casting

Il tipo di dato rappresentato da una variabile dipende dal valore della variabile stessa. Ad esempio se assegniamo alla variabile $variabile il valore 5 in quel momento essa starà rappresentando un valore di tipo integer. Se in seguito dichiariamo che $variabile = "ciao" allora il tipo di dato rappresentato sarà una stringa. Questo comportamento è detto type juggling.

Possiamo anche dichiarare espressamente il tipo di dato che la variabile rappresenta anteponendo ad essa uno degli operatori di casting: (bool), (int), (float), (string), (array), (object), (unset). L'ultimo operatore (unset) serve per trasformare una variabile nel tipo di dato NULL. Non è presente l'operatore di casting per i tipi di dato resource perchè non avrebbe senso.

Confronto di diversi tipi di dati

$x passata alle funzioni che verificano il tipo
Espressione 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 non definita NULL TRUE TRUE FALSE FALSE
$x = array(); array TRUE FALSE TRUE FALSE
$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
Confronto di uguaglianza usando l'operatore == parte I
  TRUE FALSE 1 0 -1 "1"
TRUE TRUE FALSE TRUE FALSE TRUE TRUE
FALSE FALSE TRUE FALSE TRUE FALSE FALSE
1 TRUE FALSE TRUE FALSE FALSE TRUE
0 FALSE TRUE FALSE TRUE FALSE FALSE
-1 TRUE FALSE FALSE FALSE TRUE FALSE
"1" TRUE FALSE TRUE FALSE FALSE TRUE
"0" FALSE TRUE FALSE TRUE FALSE FALSE
"-1" TRUE FALSE FALSE FALSE TRUE FALSE
NULL FALSE TRUE FALSE TRUE FALSE FALSE
array() FALSE TRUE FALSE FALSE FALSE FALSE
"php" TRUE FALSE FALSE TRUE FALSE FALSE
"" FALSE TRUE FALSE TRUE FALSE FALSE
Confronto di uguaglianza usando l'operatore == parte II
  "0" "-1" NULL array() "php" ""
TRUE FALSE TRUE FALSE FALSE TRUE FALSE
FALSE TRUE FALSE TRUE TRUE FALSE TRUE
1 FALSE FALSE FALSE FALSE FALSE FALSE
0 TRUE FALSE TRUE FALSE TRUE TRUE
-1 FALSE TRUE FALSE FALSE FALSE FALSE
"1" FALSE FALSE FALSE FALSE FALSE FALSE
"0" TRUE FALSE FALSE FALSE FALSE FALSE
"-1" FALSE TRUE FALSE FALSE FALSE FALSE
NULL FALSE FALSE TRUE TRUE FALSE TRUE
array() FALSE FALSE TRUE TRUE FALSE FALSE
"php" FALSE FALSE FALSE FALSE TRUE FALSE
"" FALSE FALSE TRUE FALSE FALSE TRUE
Confronto di identità usando l'operatore === parte I
  TRUE FALSE 1 0 -1 "1"
TRUE TRUE FALSE FALSE FALSE FALSE FALSE
FALSE FALSE TRUE FALSE FALSE FALSE FALSE
1 FALSE FALSE TRUE FALSE FALSE FALSE
0 FALSE FALSE FALSE TRUE FALSE FALSE
-1 FALSE FALSE FALSE FALSE TRUE FALSE
"1" FALSE FALSE FALSE FALSE FALSE TRUE
"0" FALSE FALSE FALSE FALSE FALSE FALSE
"-1" FALSE FALSE FALSE FALSE FALSE FALSE
NULL FALSE FALSE FALSE FALSE FALSE FALSE
array() FALSE FALSE FALSE FALSE FALSE FALSE
"php" FALSE FALSE FALSE FALSE FALSE FALSE
"" FALSE FALSE FALSE FALSE FALSE FALSE
Confronto di identità usando l'operatore === parte II
  "0" "-1" NULL array() "php" ""
TRUE FALSE FALSE FALSE FALSE FALSE FALSE
FALSE FALSE FALSE FALSE FALSE FALSE FALSE
1 FALSE FALSE FALSE FALSE FALSE FALSE
0 FALSE FALSE FALSE FALSE FALSE FALSE
-1 FALSE FALSE FALSE FALSE FALSE FALSE
"1" FALSE FALSE FALSE FALSE FALSE FALSE
"0" TRUE FALSE FALSE FALSE FALSE FALSE
"-1" FALSE TRUE FALSE FALSE FALSE FALSE
NULL FALSE FALSE TRUE FALSE FALSE FALSE
array() FALSE FALSE FALSE TRUE FALSE FALSE
"php" FALSE FALSE FALSE FALSE TRUE FALSE
"" FALSE FALSE FALSE FALSE FALSE TRUE