W3docs

is_integer()

La funzione is_integer() è un alias di is_int() in PHP. Verifica se una variabile è di tipo intero e restituisce un valore boolean.

Introduzione

is_integer() è un alias di is_int() in PHP. Verifica se il tipo di una variabile è intero e restituisce un boolean. Un intero in PHP è un numero intero senza parte frazionaria, come -5, 0 o 42.

Questa pagina illustra cosa controlla is_integer() (e cosa deliberatamente non controlla), le insidie legate alle stringhe numeriche e quale nome usare nel nuovo codice.

Usa is_int() al suo posto. is_integer() e is_int() sono la stessa funzione, quindi nessuna delle due è rimossa o deprecata. Tuttavia, is_int() è il nome canonico utilizzato in tutto il manuale PHP e nelle codebase moderne. Preferiscila per coerenza.

Sintassi

is_integer(mixed $value): bool

Accetta un argomento, $value, la variabile da ispezionare, e restituisce true solo quando $value è di tipo int, e false per qualsiasi altro tipo.

Esempio di utilizzo

php— editable, runs on the server

$var1 contiene l'intero 42, quindi la chiamata restituisce true, che echo stampa come 1. $var2 è una string, quindi la chiamata restituisce false, che echo stampa come nulla (una string vuota). Per visualizzare chiaramente i valori boolean, usa var_dump() al posto di echo.

Controlla il tipo, non il valore

Questa è la fonte di confusione più comune: is_integer() osserva il tipo della variabile, quindi una string come "42" o un float come 42.0 non è un intero, anche se "sembra" tale.

<?php
var_dump(is_integer(42));        // bool(true)
var_dump(is_integer("42"));      // bool(false) — numeric string, not int
var_dump(is_integer(42.0));      // bool(false) — float, not int
var_dump(is_integer(true));      // bool(false) — bool, not int
var_dump(is_integer(null));      // bool(false)
var_dump(is_integer(PHP_INT_MAX)); // bool(true)
?>

Se hai bisogno di accettare stringhe numeriche (ad esempio, valori provenienti da $_GET, $_POST o un file CSV), usa is_numeric() oppure effettua il cast/la validazione con intval().

Quando usarla?

  • Proteggere un argomento di funzione prima di eseguire operazioni matematiche solo su interi, ad esempio usando un valore come indice di array o limite di ciclo.
  • Distinguere i tipi dopo una funzione che può restituire tipi misti (un pattern comune con strpos(), che restituisce un offset int oppure false):
<?php
$pos = strpos("hello world", "world");
if (is_integer($pos)) {
    echo "Found at index $pos\n"; // Found at index 6
} else {
    echo "Not found\n";
}
?>

Funzioni correlate per il controllo dei tipi

FunzioneRestituisce true per
is_int()Un int (nome canonico; identico a is_integer())
is_float()Un float (es. 3.14, 42.0)
is_string()Una string, inclusa "42"
is_numeric()Un int, float, oppure una string numerica
gettype()(restituisce il nome del tipo, non un boolean)

Consulta il capitolo sui tipi di dati PHP per un quadro completo di come PHP categorizza i valori.

Conclusione

is_integer() è un alias di is_int() che restituisce true solo quando una variabile è di tipo int. Ricorda che controlla il tipo, non il valore, quindi le stringhe numeriche e i float restituiscono false. Per il nuovo codice, preferisci il canonico is_int(); usa is_numeric() quando anche le stringhe numeriche devono essere accettate.

Pratica

Pratica
Come puoi verificare se una variabile contiene un valore intero in PHP?
Come puoi verificare se una variabile contiene un valore intero in PHP?
Was this page helpful?