uno script PHP si arresta senza un messaggio di errore, se cambio la firma di un metodo di una class, che implementa un intereface, ad esempio:
interface A { public function somefunction(); } class B implements A { public function somefunction(XY $xy); { ... } }
Ovviamente si tratta di un errore, ma non viene visualizzato alcun messaggio di errore.
Qual è il nome di questo tipo di errore? (Ho già cercato molto, ma ovviamente con le frasi sbagliate) Come posso registrare o emettere questo errore?
Sto usando PHP 5.3.1 (con XAMPP per Windows 1.7.3)
(Ho usato Zend Debugger con PHP <5.3 in precedenza, where questi errori venivano mostrati nella console di Eclipse, ma ora sto usando XDebug.)
Grazie in anticipo per qualsiasi suggerimento!
metti in cima al file e poi prova,
<?php ini_set('display_errors',1); error_reporting(E_ALL); ?>
Se continui a non ricevere output, controlla il tuo error_log.
RISOLTO
@ control Grazie, il tuo suggerimento mi ha indirizzato nella giusta direzione:
Sto usando una function di caricamento automatico per caricare le classi richieste (usando spl_autoload_register ()). La mia implementazione del mio autoloader trattiene tutti i messaggi di errore … Non sapevo, che questo fa sì che errori così "più profondi" non vengano visualizzati. Questo è stato alless un po 'stupido dalla mia parte, ma sono più felice, ho trovato la ragione di questo problema e ho imparato qualcosa 🙂
Mille grazie a tutti i tuoi contributi! E scusa ancora, che non posso più modificare la mia domanda iniziale.
@outis Grazie, per favore leggi il mio commento
Metti quanto segue all'inizio del tuo script:
error_reporting(E_ALL);
Dovrebbe segnalare un errore.
Qualcosa deve essere all'altezza della tua configuration. Quando provo il codice di esempio sotto PHP 5.3.2 + XDebug 2.1.0, PHP si lamenta:
Errore irreversibile: la dichiarazione di B :: somefunction () deve essere compatibile con quella di A :: somefunction ()
Il tipo di errore è una violazione di sostituzione , poiché una B
non può essere sostituita con una A
in tutte le situazioni.