2009-07-08 5 views
23

Ich habe eine select() -Methode in einer Datenbankklasse, die ein optionales boolesches Argument $ sum hat. Dieses Argument wird verwendet, um zu sagen, ob die Methode auch COUNT (*) verwenden soll oder nicht.Gibt es eine Möglichkeit, eine PHP-Warnung anzuzeigen oder zu werfen?

Ich möchte eine Warnung zeigen, wie diese normalen PHP-Fehler, wenn ich versuche, Klassen-> Summe zugreifen, wenn das Attribut nicht gesetzt ist (dh, wenn ich rufe select() mit $ sum = false.

gibt es eine Möglichkeit, eine Warnung, wie dies zu zeigen, oder sollte ich echo nur einen Fehler und glücklich sein?

Antwort

28

Wenn Sie eine Warnung generiert werden soll, sollten Sie schreiben

trigger_error($yourErrorMessage, E_USER_WARNING); 

trigger_error() den $error_type Parameter zur Einstellung der Fehlerwert (Notice, Warning oder Fatal error). Die jeweils Konstanten sind:

E_USER_NOTICE    // Notice (default) 
E_USER_WARNING   // Warning 
E_USER_ERROR    // Fatal Error 

Beachten Sie, dass Fatal error die Ausführung aufeinander folgender PHP-Code stoppt, während Notice und Warning lassen fortzusetzen.

Von PHP 5.5 sollten Sie auch die Finally Aussage in Betracht ziehen.

12

Sie trigger_error() versuchen könnte.

+9

... Verwenden E_WARNING als das 2. Argument. –

+7

'trigger_error()' kann nur Warnungen der E_USER-Familie akzeptieren; benutze stattdessen E_USER_WARNING. – jevon

4

Sie den objektorientierten Ansatz gehen, so schlage ich vor, ein schauen Sie in exceptions.

+1

+1 Exceptions geben Ihnen die vollständige Backtrace-Information für das Debuggen, während trigger_error() Ihnen keinen nützlichen Dateinamen/Zeilennummer gibt. –

+1

Ja, Sie haben Recht, aber eine Ausnahme für dieses Problem ist nur so viel Ärger. Es ist ein leicht behebbarer, nicht schwerwiegender Fehler, der bei der Entwicklung schnell auftreten würde. Das Auslösen einer Warnung reicht aus, um den Entwickler darüber zu informieren, was passiert ist. – igorsantos07

+0

Warnungen gibt es aus einem bestimmten Grund. Du solltest sie nicht einfach ignorieren und auf deinem fröhlichen Weg weiter machen, denn etwas hat * wahrscheinlich * aber nicht unbedingt schief gelaufen. Throwing Exceptions zwingt den Programmierer, sich mit dem Fehler ** vor dem Ende des Skripts zu befassen **. Wenn Sie den Dev nur informieren möchten, ist eine Exception immer noch eine robustere Methode, da Ihr Programm nicht weiterarbeitet, wenn der Status möglicherweise nicht mehr korrekt ist. Wenn Sie fortfahren möchten, können Sie Ihren Code versuchen, den Fehler abfangen und sich entsprechend damit befassen. –

Verwandte Themen