W3docs

sizeof()

Scopri come la funzione PHP sizeof() conta gli elementi di un array, come si relaziona a count() e come COUNT_RECURSIVE gestisce gli array annidati.

Introduzione

PHP include molte funzioni integrate per lavorare con gli array. sizeof() è una delle più semplici: restituisce il numero di elementi contenuti in un array. Questa pagina spiega come funziona sizeof(), come si comporta con array annidati (multidimensionali) e perché non è altro che un alias di count().

Cos'è sizeof()?

sizeof() restituisce il numero di elementi in un array. È un alias di count() — le due funzioni sono identiche internamente, quindi condividono lo stesso comportamento, gli stessi valori restituiti e le stesse prestazioni. Tutto ciò che puoi fare con count() puoi farlo con sizeof(), e viceversa.

Poiché è un alias e non un'implementazione separata, non esiste alcuna situazione in cui una sia più veloce o più capace dell'altra.

Sintassi

sizeof(array|Countable $value, int $mode = COUNT_NORMAL): int
ParametroObbligatorioDescrizione
$valueL'array (o oggetto Countable) di cui si vogliono contare gli elementi.
$modeNoCome contare. COUNT_NORMAL (predefinito) conta solo gli elementi di primo livello; COUNT_RECURSIVE conta anche gli elementi negli array annidati.

Restituisce un int — il numero di elementi.

Esempio di base

Contare gli elementi di un array semplice:

php— editable, runs on the server

Output:

3

L'array contiene tre elementi, quindi sizeof() restituisce 3.

Contare array annidati con COUNT_RECURSIVE

Per impostazione predefinita sizeof() conta solo gli elementi al primo livello. Per contare anche gli elementi negli array annidati, passa COUNT_RECURSIVE come secondo argomento:

<?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

Output:

2
5

COUNT_NORMAL vede due chiavi di primo livello (fruits e vegetables). COUNT_RECURSIVE conta queste due chiavi più i tre valori al loro interno (apple, banana, carrot), ottenendo 5.

sizeof() vs count()

Usa il nome che ti sembra più leggibile — il risultato è sempre lo stesso:

<?php

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

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

Output:

bool(true)

In pratica la documentazione ufficiale di PHP raccomanda count(), poiché il nome sizeof può essere confuso con l'operatore sizeof del C (che misura la dimensione in memoria, non il numero di elementi). Usare count() mantiene il codice coerente con la maggior parte delle moderne basi di codice PHP.

Errori comuni

  • Non conta i caratteri in una stringa. sizeof('hello') genera un avviso e restituisce 1, non 5. Usa strlen() per la lunghezza di una stringa.
  • Non somma le dimensioni di più array. sizeof() accetta un solo argomento array, non più di uno.
  • Un array vuoto restituisce 0. Questo lo rende sicuro da usare direttamente in una condizione di ciclo come for ($i = 0; $i < sizeof($arr); $i++).

Conclusione

sizeof() restituisce il numero di elementi in un array ed è un alias diretto di count(). Passa COUNT_RECURSIVE quando hai bisogno di contare anche gli elementi annidati. Per il nuovo codice, preferisci count() per chiarezza — ma entrambi si comportano in modo identico.

Pratica

Pratica
Cosa fa la funzione 'sizeof' in PHP?
Cosa fa la funzione 'sizeof' in PHP?
Was this page helpful?