Signatur
Beschreibung
phpdbg_break_function() ist eine Hilfsfunktion des interaktiven PHP-Debuggers phpdbg und ermöglicht es, direkt im PHP-Quellcode einen Breakpoint an den Beginn einer bestimmten Funktion zu setzen. Sobald die Ausführung im Debugger diese Funktion erreicht, wird sie angehalten und die Kontrolle geht an den interaktiven Debugger über.
Diese Funktion ist besonders nützlich, wenn man den Debugger programmatisch steuern möchte, ohne jedes Mal manuell im phpdbg-CLI-Interface einen Breakpoint setzen zu müssen. Der Breakpoint bleibt für die gesamte Laufzeit der Skriptausführung aktiv.
Die Funktion ist ausschließlich innerhalb des phpdbg-Debuggers sinnvoll. In normalen PHP-Umgebungen (CLI, Web) ist sie zwar vorhanden, hat aber keine Auswirkung – es wird lediglich eine Warnung ausgegeben, dass der Debugger nicht aktiv ist.
Ähnliche Funktionen sind phpdbg_break_file() für Breakpoints auf bestimmte Zeilen in Dateien sowie phpdbg_break_method() für Methoden einer Klasse.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $function Pflicht | string | Der vollständige Name der Funktion (inkl. Namespace, falls vorhanden), an deren Beginn der Breakpoint gesetzt werden soll. Beispiel: 'meineFunktion' oder 'MeinNamespace\\meineFunktion'. |
Rückgabewert
Beispiele
Einfachen Breakpoint an einer Funktion setzen
<?php
function berechneRabatt(float $preis, float $rabatt): float {
return $preis - ($preis * $rabatt / 100);
}
// Setzt einen Breakpoint am Beginn von berechneRabatt()
// Wenn das Skript im phpdbg ausgeführt wird, hält es hier an.
phpdbg_break_function('berechneRabatt');
$endpreis = berechneRabatt(100.0, 20.0);
echo 'Endpreis: ' . $endpreis . PHP_EOL;
Breakpoint für eine Funktion in einem Namespace
<?php
namespace Shop\Pricing;
function berechneGesamtpreis(array $positionen): float {
return array_sum(array_column($positionen, 'preis'));
}
// Setzt Breakpoint auf die Namespace-qualifizierte Funktion
phpdbg_break_function('Shop\\Pricing\\berechneGesamtpreis');
$positionen = [
['name' => 'Artikel A', 'preis' => 19.99],
['name' => 'Artikel B', 'preis' => 34.50],
];
$gesamt = berechneGesamtpreis($positionen);
echo 'Gesamtpreis: ' . $gesamt . PHP_EOL;
// Wichtig · Fallstricke
Hinweis zur Umgebung: phpdbg_break_function() ist nur im Kontext des phpdbg-Debuggers wirksam. Wird das Skript in einer normalen PHP-Umgebung ausgeführt, hat die Funktion keinen Effekt. Es empfiehlt sich, solche Aufrufe nur für Debugging-Zwecke zu verwenden und sie vor dem Produktiveinsatz zu entfernen.
Verfügbarkeit: Die Funktion ist nur verfügbar, wenn PHP mit der phpdbg-SAPI kompiliert wurde. Sie ist standardmäßig ab PHP 5.6 im offiziellen PHP-Paket enthalten. Mit function_exists('phpdbg_break_function') kann die Verfügbarkeit geprüft werden.