In breve: PHP foreach argument must be array or object — indica che foreach riceve un valore che non può essere iterato come array o oggetto.
Indice dei contenuti
PHP foreach argument must be array or object: significato
Le prime ipotesi da verificare per “PHP foreach argument must be array or object” sono codice non compatibile con la versione PHP; file incluso più volte o dipendenza non caricata.

Sintomi e cause probabili
Sintomi da verificare
- Il messaggio “PHP foreach argument must be array or object” compare durante un’operazione ripetibile.
- La funzione coinvolta in PHP non raggiunge il risultato previsto.
- Il log dell’area PHP registra un evento nello stesso minuto della prova.
- Il comportamento osservato in PHP cambia in base a utente, rete, file o configurazione.
Cause probabili
- Codice non compatibile con la versione PHP
- File incluso più volte o dipendenza non caricata
- Dato null o di tipo diverso da quello atteso
- Output inviato prima degli header
Diagnosi passo per passo
- Leggere messaggio completo, file, riga e stack trace
- Identificare plugin, tema o codice proprietario responsabile
- Riprodurre con lo stesso input in staging
- Verificare tipi, include e percorsi prima della riga
- Confrontare il comportamento con una versione supportata
Log e dati da controllare
- PHP error_log
- WordPress debug.log se applicabile
- versione, estensioni e configurazione PHP
Correzioni sicure
- Aggiornare o correggere il componente responsabile
- Validare tipi e valori prima dell’uso
- Usare include_once o autoload coerente quando necessario
- Rimuovere output prematuro e caratteri invisibili
- Correggere percorso e permessi senza esporre il filesystem

Verifica finale
- La stessa chiamata termina senza warning o fatal error
- Lo stack trace non ricompare
- Frontend e processi in background funzionano
- La correzione resta compatibile con la versione PHP in uso
Errori da evitare
- Non disattivare globalmente WAF, ModSecurity, antispam o verifica TLS per aggirare il sintomo
- Non impostare permessi 777 e non cambiare proprietari in modo ricorsivo senza conoscere la struttura dell’account
- Non cancellare database, chiavi Redis, cache o file di sistema senza backup e senza aver identificato l’oggetto coinvolto
- Non ripetere pagamenti, import o webhook reali finché non hai verificato l’idempotenza
Guide Xlogic correlate
Fonti tecniche
Domande frequenti
Che cosa significa “PHP foreach argument must be array or object”?
PHP foreach argument must be array or object — indica che foreach riceve un valore che non può essere iterato come array o oggetto.
Da cosa può dipendere “PHP foreach argument must be array or object”?
Le cause da verificare per “PHP foreach argument must be array or object” sono: codice non compatibile con la versione PHP; file incluso più volte o dipendenza non caricata; dato null o di tipo diverso da quello atteso.
Quali controlli eseguire per “PHP foreach argument must be array or object”?
Per diagnosticare “PHP foreach argument must be array or object”, controlla nell’ordine: leggere messaggio completo, file, riga e stack trace; identificare plugin, tema o codice proprietario responsabile; riprodurre con lo stesso input in staging. La soluzione è confermata quando la stessa chiamata termina senza warning o fatal error; lo stack trace non ricompare.