W3docs

sizeof()

Aprenda como a função sizeof() do PHP conta elementos de arrays, sua relação com count() e como COUNT_RECURSIVE lida com arrays aninhados, com exemplos.

Introdução

O PHP inclui muitas funções integradas para trabalhar com arrays. sizeof() é uma das mais simples: ela retorna o número de elementos que um array contém. Esta página explica como sizeof() funciona, como se comporta com arrays aninhados (multidimensionais) e por que ela é apenas outro nome para count().

O que é sizeof()?

sizeof() retorna o número de itens em um array. É um alias de count() — as duas funções são idênticas internamente, portanto compartilham o mesmo comportamento, valores de retorno e desempenho. Tudo o que você pode fazer com count() pode ser feito com sizeof(), e vice-versa.

Por ser um alias e não uma implementação separada, não há situação em que uma seja mais rápida ou mais capaz que a outra.

Sintaxe

sizeof(array|Countable $value, int $mode = COUNT_NORMAL): int
ParâmetroObrigatórioDescrição
$valueSimO array (ou objeto Countable) cujos elementos você deseja contar.
$modeNãoComo contar. COUNT_NORMAL (padrão) conta apenas os elementos do nível superior; COUNT_RECURSIVE também conta os elementos dentro de arrays aninhados.

Retorna um int — o número de elementos.

Exemplo básico

Contando os elementos de um array simples:

php— editable, runs on the server

Saída:

3

O array contém três elementos, portanto sizeof() retorna 3.

Contando arrays aninhados com COUNT_RECURSIVE

Por padrão, sizeof() conta apenas os elementos do nível superior. Para também contar os elementos dentro de sub-arrays, passe COUNT_RECURSIVE como segundo argumento:

<?php

$data = [
    'fruits'     => ['apple', 'banana'],
    'vegetables' => ['carrot'],
];

echo sizeof($data);                  // top-level keys only
echo "\n";
echo sizeof($data, COUNT_RECURSIVE); // top-level + nested items

Saída:

2
5

COUNT_NORMAL vê duas chaves de nível superior (fruits e vegetables). COUNT_RECURSIVE conta essas duas chaves mais os três valores dentro delas (apple, banana, carrot), resultando em 5.

sizeof() vs count()

Use o nome que for mais legível para você — o resultado é sempre o mesmo:

<?php

$nums = [10, 20, 30, 40];

var_dump(sizeof($nums) === count($nums));

Saída:

bool(true)

Na prática, a documentação oficial do PHP recomenda count(), pois o nome sizeof pode ser confundido com o operador sizeof do C (que mede o tamanho em memória, não a quantidade de elementos). Usar count() mantém seu código consistente com a maioria das bases de código PHP modernas.

Armadilhas comuns

  • Não conta caracteres em uma string. sizeof('hello') gera um aviso e retorna 1, não 5. Use strlen() para o comprimento de strings.
  • Não soma os tamanhos de múltiplos arrays. sizeof() recebe um argumento de array, não vários.
  • Um array vazio retorna 0. Isso torna seguro usá-la diretamente em uma condição de loop, como for ($i = 0; $i < sizeof($arr); $i++).

Conclusão

sizeof() retorna o número de elementos em um array e é um alias direto de count(). Passe COUNT_RECURSIVE quando precisar contar também os elementos aninhados. Para código novo, prefira count() para maior clareza — mas ambas se comportam de forma idêntica.

Prática

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