W3docs

is_array()

A função is_array() é uma função integrada do PHP que verifica se uma variável é um array ou não. Um array é um tipo especial de variável que armazena uma

O que é is_array()?

is_array() é uma função integrada do PHP que verifica se uma determinada variável é um array. Ela retorna true se a variável for um array e false para qualquer outro tipo (string, integer, object, null, entre outros).

O PHP é tipado dinamicamente, portanto uma variável pode conter qualquer tipo de valor em tempo de execução. Antes de iterar sobre um valor, indexá-lo ou passá-lo para uma função de array como count() ou array_map(), geralmente vale a pena confirmar que você realmente tem um array. Chamar uma função de array em um não-array pode lançar um TypeError (PHP 8+) ou emitir um aviso, portanto um guarda rápido com is_array() torna seu código mais seguro.

Sintaxe

is_array(mixed $value): bool

Ela recebe um único parâmetro, $value — a variável a ser testada — e sempre retorna um boolean. Ela nunca gera um erro por conta própria, então é seguro chamá-la com qualquer valor, incluindo resultados de funções que parecem não definidos.

Exemplo básico

php— editable, runs on the server

Aqui $list é um array, então is_array() retorna true; $text é uma string, então retorna false. Usamos var_dump() em vez de echo porque echo true imprime 1 enquanto echo false imprime uma string vazia — o que dificulta a leitura de booleanos. var_dump() mostra o tipo e o valor explicitamente.

O que conta como um array

Tanto arrays indexados quanto associativos retornam true, assim como um array vazio. Qualquer coisa que apenas pareça uma coleção — como um objeto ou um ArrayObjectnão conta como um array nativo.

<?php
var_dump(is_array([]));                 // bool(true)  — empty array
var_dump(is_array([1, 2, 3]));          // bool(true)  — indexed
var_dump(is_array(["name" => "Ann"]));  // bool(true)  — associative
var_dump(is_array([[1, 2], [3, 4]]));   // bool(true)  — multidimensional

var_dump(is_array("array"));            // bool(false) — string
var_dump(is_array(42));                 // bool(false) — integer
var_dump(is_array(null));               // bool(false) — null
var_dump(is_array(new stdClass()));     // bool(false) — object
?>

Uso prático: guardar antes de iterar

Um padrão comum é normalizar a entrada que pode chegar como um único valor ou como uma lista, e depois iterar com segurança:

<?php
function printAll(mixed $input): void
{
    // Wrap a single value in an array so the loop always works.
    if (!is_array($input)) {
        $input = [$input];
    }

    foreach ($input as $item) {
        echo $item, "\n";
    }
}

printAll("just one");        // just one
printAll(["a", "b", "c"]);   // a / b / c on separate lines
?>

Isso evita um aviso de foreach quando $input é um escalar e mantém o código chamador simples.

is_array() vs. verificações relacionadas

  • is_array() vs. gettype(): gettype() retorna uma string como "array"; is_array() retorna um boolean diretamente, o que fica mais legível em um if.
  • is_array() vs. is_iterable(): se você só precisa saber se pode usar foreach com um valor, is_iterable() é mais abrangente — aceita tanto arrays quanto objetos Traversable (como geradores).
  • is_array() vs. is_countable(): use is_countable() antes de chamar count() para também aceitar objetos que implementam a interface Countable.
  • Para outras verificações de escalares, veja is_string() e is_int().

Resumo

Use is_array() sempre que precisar de uma verificação rápida e sem erros de que um valor é um array PHP verdadeiro — principalmente como guarda antes de iterar ou antes de chamar uma função específica de array. Se você precisar permitir objetos iteráveis também, prefira is_iterable() ou is_countable().

Prática

Prática
O que a função 'is_array' faz no PHP?
O que a função 'is_array' faz no PHP?
Was this page helpful?