Start · Sprachen · PHP · Referenz · phpdbg_break_function

phpdbg_break_function

Funktion

Setzt einen Breakpoint am Beginn einer benannten Funktion im <code>phpdbg</code>-Debugger.

seit PHP 5.6.0 Kategorie: misc

Signatur

phpdbg_break_function(string $function): void

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

Typ
void
Beschreibung
Gibt keinen Wert zurück.

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;
Endpreis: 80

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;
Gesamtpreis: 54.49

// 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.