Signatur
Beschreibung
phpdbg_break_next() ist eine interne Hilfsfunktion des phpdbg-Debuggers, der seit PHP 5.6 mitgeliefert wird. Sie weist den Debugger an, die Ausführung am nächsten Opcode zu unterbrechen, sodass der Entwickler den Programmzustand inspizieren kann.
Die Funktion ist ausschließlich innerhalb einer aktiven phpdbg-Sitzung sinnvoll. Wird sie in einer normalen PHP-Laufzeitumgebung (z. B. CLI oder Web-SAPI) aufgerufen, hat sie keinen Effekt, da dort kein Debugger-Kontext vorhanden ist.
Typischer Einsatz ist das programmatische Setzen eines Breakpoints direkt im Quellcode, ohne die phpdbg-Konsole bedienen zu müssen – ähnlich wie xdebug_break() für Xdebug. Dies eignet sich besonders, wenn der Breakpoint von einer Bedingung abhängt, die sich nur zur Laufzeit ermitteln lässt.
Da phpdbg auf Opcode-Ebene arbeitet, erfolgt der Stopp noch vor der Ausführung des unmittelbar folgenden Opcodes – das ist präziser als ein Halt auf Zeilenebene und erlaubt eine genaue Inspektion des Zustands vor der nächsten Operation.
Rückgabewert
Beispiele
Bedingten Breakpoint im Code setzen
<?php
// Wird nur innerhalb einer phpdbg-Sitzung wirksam
$wert = 42;
if ($wert > 40) {
// Debugger soll hier anhalten, bevor der nächste Opcode ausgeführt wird
phpdbg_break_next();
}
echo "Wert: $wert\n";
Breakpoint vor einer kritischen Operation
<?php
function verarbeiteDaten(array $daten): void
{
foreach ($daten as $eintrag) {
if ($eintrag['status'] === 'kritisch') {
// Debugger anhalten, um den Eintrag zu inspizieren
phpdbg_break_next();
}
// ... weitere Verarbeitung
echo "Verarbeite: " . $eintrag['name'] . "\n";
}
}
verarbeiteDaten([
['name' => 'Alpha', 'status' => 'normal'],
['name' => 'Beta', 'status' => 'kritisch'],
]);
// Wichtig · Fallstricke
Nur innerhalb von phpdbg wirksam: Außerhalb einer phpdbg-Sitzung ist der Aufruf wirkungslos und erzeugt keinen Fehler. Produktiv-Code sollte diese Funktion nicht enthalten, da sie ausschließlich zu Debugging-Zwecken gedacht ist.
Die Funktion ist nur verfügbar, wenn PHP mit der phpdbg-SAPI ausgeführt wird. Mit function_exists('phpdbg_break_next') lässt sich zur Laufzeit prüfen, ob sie verfügbar ist, bevor sie aufgerufen wird.
Zu beachten ist, dass phpdbg selbst ab PHP 8.x zwar weiterhin Teil des offiziellen PHP-Quellcodes ist, die aktive Weiterentwicklung jedoch eingeschränkt wurde. Für aktiv betreute Debugging-Lösungen wird häufig Xdebug empfohlen.