Runtime
Fatal error: Declaration of ChildClass::process(string $data): void must be compatible with ParentClass::process($data). – PHP E_COMPILE_ERROR
Il metodo ridefinito nella classe figlia viola le regole di covarianza/controvarianza dei tipi rispetto alla firma dichiarata nella classe genitore o nell'interfaccia.
Cosa significa questo errore?
Il metodo ridefinito nella classe figlia viola le regole di covarianza/controvarianza dei tipi rispetto alla firma dichiarata nella classe genitore o nell'interfaccia.
Messaggio originale
Fatal error: Declaration of ChildClass::process(string $data): void must be compatible with ParentClass::process($data).Contesto e parole chiave
Alias
- Declaration must be compatible with
- Liskov substitution error PHP
Messaggi alternativi
- dichiarazione del metodo deve essere compatibile con la classe genitore
Prodotti
- PHP Engine / Zend Engine / PHP-FPM / Composer
Piattaforme
- Linux
- macOS
- Windows Server
Parole chiave
- composer
- E_COMPILE_ERROR
- errore-php-declaration-must-be-compatible-with-parent
- php
- php 8
- php.oop.declaration-must-be-compatible
- Runtime
Cause possibili
Origine del problema per PHP: Fatal error — Declaration of method must be compatible with parent
Il metodo ridefinito nella classe figlia viola le regole di covarianza/controvarianza dei tipi rispetto alla firma dichiarata nella classe genitore o nell'interfaccia.
molto comuneDiagnosi
Diagnostica PHP per PHP: Fatal error — Declaration of method must be compatible with parent
Esaminare i log degli errori di PHP nel file specificato da error_log in php.ini o nei log di PHP-FPM /var/log/php-fpm/www-error.log.
Come leggere il risultato. Mostra lo stack trace completo dell'errore, file e numero di riga esatti in cui è avvenuto il blocco.
tail -n 50 /var/log/nginx/error.logRisoluzione
Procedura di risoluzione per PHP: Fatal error — Declaration of method must be compatible with parent
Applicare la correzione al codice PHP o alla configurazione del php.ini secondo le specifiche ufficiali.
- Verificare la riga di codice segnalata nello stack trace
- Regolare i parametri in php.ini se l'errore deriva da limiti di sistema
- Riavviare il servizio PHP-FPM o Apache
sudo systemctl reload php-fpmDomande frequenti
Come risolvere il codice o errore E_COMPILE_ERROR in PHP?
Il metodo ridefinito nella classe figlia viola le regole di covarianza/controvarianza dei tipi rispetto alla firma dichiarata nella classe genitore o nell'interfaccia.
Approfondimenti
- PHP Official Manual - Errors and Exceptions documentazione_ufficiale