W3docs

is_bool()

La funzione is_bool() in PHP verifica se una variabile è di tipo boolean oppure no. Un boolean può essere solo true o false.

Introduzione

is_bool() è una funzione PHP integrata che indica se una variabile contiene un valore boolean. Un boolean è il tipo di dato più semplice in PHP: può essere solo true o false.

La cosa fondamentale da capire è che is_bool() controlla il tipo della variabile, non se il valore è "truthy" o "falsy". Una stringa come "true", l'intero 1, o un array vuoto vengono valutati come truthy o falsy in un'istruzione if, ma nessuno di essi è effettivamente un boolean, quindi is_bool() restituisce false per tutti. Solo un valore proveniente da un letterale boolean (true/false) o da un'espressione di confronto/logica (che produce sempre un boolean) supera il test.

Questa pagina illustra la sintassi, cosa restituisce is_bool() per i valori che probabilmente testerai, e quando conviene usarla nel codice reale.

Sintassi

is_bool(mixed $value): bool

Accetta un singolo argomento, $value — la variabile da ispezionare — e restituisce true se quel valore è di tipo boolean, false altrimenti. La funzione non modifica mai la variabile e non genera mai un errore: restituisce sempre un boolean.

Esempio di utilizzo

L'esempio seguente testa un boolean vero contro una stringa in modo da vedere esattamente cosa viene stampato:

Esempio di PHP is_bool()

php— editable, runs on the server

Nota attentamente l'output: quando si usa echo con un boolean, true diventa la stringa "1" e false diventa una stringa vuota "". Ecco perché la seconda riga appare vuota — is_bool($name) ha restituito false, e PHP stampa false come nulla. Per ottenere un risultato inequivocabile durante il debug, usa var_dump() al posto di echo, perché stampa bool(true) / bool(false).

Cosa viene considerato boolean

Un errore comune è supporre che i valori "truthy" siano boolean. Non lo sono. La tabella seguente mostra cosa restituisce is_bool() per una serie di valori:

<?php
var_dump(is_bool(true));        // bool(true)
var_dump(is_bool(false));       // bool(true)
var_dump(is_bool(5 > 3));       // bool(true)  — a comparison yields a boolean
var_dump(is_bool(1));           // bool(false) — integer, not boolean
var_dump(is_bool("true"));      // bool(false) — string, not boolean
var_dump(is_bool(null));        // bool(false) — null is its own type
var_dump(is_bool([]));          // bool(false) — empty array
?>

I valori 1, "true", null e [] sono tutti falsy o truthy nelle condizioni, ma il loro tipo è rispettivamente intero, string, null e array — quindi is_bool() li rifiuta.

Quando usarla

is_bool() è più utile ai confini del tuo codice, dove il tipo di dato è importante:

  • Validazione degli argomenti di una funzione. Se una funzione si aspetta un flag on/off rigoroso, is_bool() ti permette di rifiutare "yes", 1, o null prima che causino bug subdoli.
  • Distinguere false da "nessun valore". Funzioni come strpos() restituiscono false in caso di fallimento ma un valido 0 in caso di successo. Controllare il tipo con is_bool() (o l'operatore ===) evita di confondere i due.
  • Gestione di configurazioni miste. Le impostazioni caricate da JSON o da un form possono arrivare come stringhe; is_bool() indica se un valore è già un boolean reale o deve ancora essere convertito con boolval().
<?php
function setFeature(string $name, $enabled): void
{
    if (!is_bool($enabled)) {
        throw new InvalidArgumentException("\$enabled must be a boolean.");
    }
    echo "$name is now " . ($enabled ? "on" : "off") . "\n";
}

setFeature("dark_mode", true);   // dark_mode is now on
// setFeature("dark_mode", 1);   // would throw: $enabled must be a boolean
?>

Funzioni correlate

is_bool() fa parte della famiglia delle funzioni di verifica del tipo di PHP. Quella giusta dipende dal tipo che ti interessa:

  • is_int() — verifica se si tratta di un intero.
  • is_string() — verifica se si tratta di una string.
  • is_array() — verifica se si tratta di un array.
  • is_null() — verifica se il valore è null.
  • gettype() — ottiene il tipo di qualsiasi variabile come string.
  • boolval() — converte un valore in boolean invece di limitarsi a testarlo.

Conclusione

is_bool() risponde a una domanda precisa: il tipo di questa variabile è boolean? Restituisce true solo per true, false e i risultati di espressioni di confronto o logiche — mai per stringhe truthy, numeri o array. Usala per proteggere gli argomenti delle funzioni, distinguere un false reale da un valore "mancante" e mantenere il codice compatibile con i tipi di dato esatti che ti aspetti.

Pratica

Pratica
Cosa fa la funzione is_bool() in PHP?
Cosa fa la funzione is_bool() in PHP?
Was this page helpful?