Während des Entwicklungsprozesses ist das Debuggen von Informationen entscheidend für die Problemuntersuchung. Normalerweise verwenden wir Echo , var_dump , print_r usw., um Debugging -Informationen zu drucken. Wenn wir jedoch auf einen Fehler im Code stoßen, müssen wir möglicherweise die relevanten Debugging -Informationen ausdrucken und gleichzeitig die Ausführung des Skripts unterbrechen. Zu diesem Zeitpunkt wird die Ausgangsfunktion zu einem sehr wichtigen Werkzeug, das die fortgesetzte Ausführung des Skripts abbrechen kann. Wie kann ich also mit dem Beenden zum Drucken von Debug -Informationen verwenden? Können wir die Protokolle trotzdem anzeigen, wenn das Skript unterbrochen wird? Dieser Artikel gibt Ihnen eine detaillierte Antwort.
In PHP wird die Funktion exit () verwendet, um die Ausführung des aktuellen Skripts zu beenden. Es kann eine Zeichenfolge als Parameter akzeptieren, die Zeichenfolgeinformationen ausgeben, wenn das Skript beendet wird, oder einen Exit -Status -Code zurückgeben:
<span><span><span class="hljs-keyword">exit</span></span><span>(</span><span><span class="hljs-string">"Script terminated with this message"</span></span><span>);
</span></span>
Oder übergeben Sie einfach einen Exit -Statuscode (normalerweise eine Ganzzahl):
<span><span><span class="hljs-keyword">exit</span></span><span>(</span><span><span class="hljs-number">0</span></span><span>); </span><span><span class="hljs-comment">// Normalerweise verlassen</span></span><span>
</span><span><span class="hljs-keyword">exit</span></span><span>(</span><span><span class="hljs-number">1</span></span><span>); </span><span><span class="hljs-comment">// unerwartet aufhören</span></span><span>
</span></span>
exit () abbricht nicht nur die Ausführung des Skripts ab, sondern kann auch verwendet werden, um einen Exit -Code für externe Systeme oder andere Skripte zurückzugeben.
Während des Debuggens kann es erforderlich sein, die Ausführung an einem bestimmten Ort im Skript zu stoppen und Informationen zu geben. Zu diesem Zeitpunkt können wir die Debugging -Informationen in der Ausfahrt übergeben, um die schnelle Positionierung von Problemen zu erleichtern.
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-comment">// Simulieren Sie einen Code</span></span><span>
</span><span><span class="hljs-variable">$variable</span></span><span> = </span><span><span class="hljs-string">"Test value"</span></span><span>;
</span><span><span class="hljs-comment">// Debug -Informationen hier drucken und das Skript abbrechen</span></span><span>
</span><span><span class="hljs-keyword">exit</span></span><span>(</span><span><span class="hljs-string">"Debug Info: Variable value is <span class="hljs-subst">{$variable}</span></span></span><span>");
</span><span><span class="hljs-meta">?></span></span><span>
</span></span>
Im obigen Code gibt PHP bei der Ausführung in Exit () "Debug -Info: Variablerwert Is Test Value" aus und beendet die Ausführung des Skripts. Auf diese Weise können Sie nützliche Informationen ausgeben, wenn der Code an einen bestimmten Ort ausgeführt wird, und stellt sicher, dass das Skript aufhört, um nicht weiter auszuführen, um unnötigen Code auszuführen.
In der tatsächlichen Entwicklung ist das Debugging -Informationen häufig nicht direkt in den Browser auszugeben, insbesondere in Produktionsumgebungen. Um zu vermeiden, können wir vertrauliche Informationen ausgelöst haben, können wir die Fehler -Funktion von PHP verwenden, um Debug -Informationen in eine Protokolldatei zu protokollieren. Auf diese Weise können wir immer noch Debugging -Informationen im Protokoll anzeigen, wenn das Skript unterbrochen wird.
Mit der Funktion "ERROR_LOG () können Informationen an das Fehlerprotokoll von PHP schreiben oder Protokolldateien anpassen. Hier ist ein Beispiel:
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-variable">$variable</span></span><span> = </span><span><span class="hljs-string">"Test value"</span></span><span>;
</span><span><span class="hljs-comment">// Schreiben Sie Debug -Informationen an PHP Fehlerprotokoll</span></span><span>
</span><span><span class="hljs-title function_ invoke__">error_log</span></span><span>(</span><span><span class="hljs-string">"Debug Info: Variable value is <span class="hljs-subst">{$variable}</span></span></span><span>", </span><span><span class="hljs-number">0</span></span><span>);
</span></span>
In diesem Beispiel werden Debug -Informationen in das Standardfehlerprotokoll von PHP geschrieben. Sie finden die ERROR_LOG -Direktive in der Php.ini -Konfiguration, um den Speicherort der Protokolle zu bestimmen.
Wenn Sie Debug -Informationen in eine benutzerdefinierte Protokolldatei schreiben möchten, können Sie den Dateipfad angeben:
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-variable">$variable</span></span><span> = </span><span><span class="hljs-string">"Test value"</span></span><span>;
</span><span><span class="hljs-comment">// Schreiben Sie Debug -Informationen an指定的日志文件</span></span><span>
</span><span><span class="hljs-title function_ invoke__">error_log</span></span><span>(</span><span><span class="hljs-string">"Debug Info: Variable value is <span class="hljs-subst">{$variable}</span></span></span><span>", </span><span><span class="hljs-number">3</span></span><span>, </span><span><span class="hljs-string">"/path/to/custom_log.log"</span></span><span>);
</span></span>
Hier werden die Protokollinformationen anstelle des Standard -PHP -Fehlerprotokolls in die Datei /path/to/custom_log.log geschrieben.
Wir können Ausgang und Protokollierung kombinieren. Beim Abtreiben des Skripts zeichnen wir zuerst die Debugging -Informationen in der Protokolldatei auf und lassen dann die Ausführung des Skripts über exit () ab.
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-variable">$variable</span></span><span> = </span><span><span class="hljs-string">"Test value"</span></span><span>;
</span><span><span class="hljs-comment">// Schreiben Sie Debug -Informationen in das Protokoll</span></span><span>
</span><span><span class="hljs-title function_ invoke__">error_log</span></span><span>(</span><span><span class="hljs-string">"Debug Info: Variable value is <span class="hljs-subst">{$variable}</span></span></span><span>", </span><span><span class="hljs-number">3</span></span><span>, </span><span><span class="hljs-string">"/path/to/custom_log.log"</span></span><span>);
</span><span><span class="hljs-comment">// Drehbuchausführung beenden</span></span><span>
</span><span><span class="hljs-keyword">exit</span></span><span>(</span><span><span class="hljs-string">"Script terminated, debug info logged."</span></span><span>);
</span><span><span class="hljs-meta">?></span></span><span>
</span></span>
Dieser Code schreibt zuerst die Debug -Informationen in die Protokolldatei und beendet das Skript über exit () und zeigt eine Eingabeaufforderung an.
Beim Debuggen mit Ausgang und Protokollierung müssen mehrere Aspekte beachtet werden:
Achtung in der Produktionsumgebung : In der Produktionsumgebung ist es am besten, Exit () zu vermeiden, um Informationen direkt zu debuggen, da die Ausführung der gesamten Seite abbricht und den internen Zustand aufdeckt. In der Regel wird empfohlen, Debug -Informationen in die Protokolldatei zu schreiben, um zu vermeiden, dass die Benutzererfahrung beeinflusst wird.
Log -Dateiberechtigungen : Stellen Sie sicher, dass PHP die Berechtigung zum Schreiben in Protokolldateien hat. Wenn keine Berechtigung vorliegt, kann ERROR_LOG () sich nicht protokollieren.
Debug -Informationen aufräumen : Während der Entwicklungsphase können Debug -Informationen schnell Probleme finden. Stellen Sie jedoch vor dem Online -Gehen sicher, dass diese Debug -Codes gelöscht werden, oder stellen Sie zumindest sicher, dass Debug -Informationen nicht den Benutzern ausgesetzt sind.
Protokolldateiverwaltung : Wenn die Protokolldatei zu groß ist, kann dies die Leistung des Servers beeinflussen. Es wird empfohlen, Protokolldateien regelmäßig zu reinigen oder zu drehen, um zu vermeiden, dass Protokolle in den Speicherplatz der Festplatte einnehmen.
Durch die Kombination von Auslöser- und Fehler_Log -Funktionen können PHP -Entwickler Debugging -Informationen flexibel in Protokolldateien aufzeichnen, während die Skriptausführung unterbrochen wird. Dies hilft nicht nur bei der Behebung von Problemen, sondern stellt auch sicher, dass unnötige Informationen in der Produktionsumgebung nicht aufgedeckt werden. Ob in lokalen Entwicklungs- oder Produktionsumgebungen, die rationale Verwendung von Protokollierung und Debugging -Interrupts ist ein wirksames Mittel zur Verbesserung der Entwicklungseffizienz und der Programmstabilität.