Start · Sprachen · PHP · Referenz · enchant_broker_get_error

enchant_broker_get_error

Funktion

Gibt die letzte Fehlermeldung des Enchant-Brokers als Zeichenkette zurück.

seit PHP 5.3.0 Kategorie: string

Signatur

enchant_broker_get_error(EnchantBroker $broker): string|false

Beschreibung

enchant_broker_get_error() liest die zuletzt aufgetretene Fehlermeldung des übergebenen Enchant-Broker-Objekts aus. Sie ist immer dann hilfreich, wenn eine vorherige Enchant-Operation fehlgeschlagen ist und der genaue Grund ermittelt werden soll.

Typischerweise wird diese Funktion aufgerufen, nachdem Operationen wie enchant_broker_request_dict() oder enchant_broker_request_pwl_dict() fehlgeschlagen sind (d. h. false zurückgegeben haben). Die Fehlermeldung gibt dann Auskunft darüber, warum das Dictionary nicht geladen werden konnte – beispielsweise weil ein Wörterbuch für die angegebene Sprache nicht installiert ist.

Gibt es keinen Fehler oder wurde noch keine fehlerhafte Operation durchgeführt, liefert die Funktion false zurück. Das Ergebnis sollte daher stets mit einem strikten Vergleich (!== false) geprüft werden, um einen leeren Fehlerstring von einem ausbleibenden Fehler zu unterscheiden.

Parameter

Name Typ Default Beschreibung
$broker Pflicht EnchantBroker Eine gültige Enchant-Broker-Instanz, die zuvor mit enchant_broker_init() erzeugt wurde.

Rückgabewert

Typ
string|false
Beschreibung
Gibt die letzte Fehlermeldung des Brokers als string zurück, falls ein Fehler vorliegt. Gibt false zurück, wenn kein Fehler vorhanden ist.

Beispiele

Fehlermeldung nach gescheitertem Dictionary-Laden ausgeben

<?php
$broker = enchant_broker_init();

// Versuch, ein nicht vorhandenes Dictionary zu laden
$dict = enchant_broker_request_dict($broker, 'xx_XX');

if ($dict === false) {
    $error = enchant_broker_get_error($broker);
    if ($error !== false) {
        echo 'Broker-Fehler: ' . $error . PHP_EOL;
    } else {
        echo 'Kein Fehler vorhanden.' . PHP_EOL;
    }
}

enchant_broker_free($broker);
Broker-Fehler: No dictionary available for language "xx_XX"

Fehlerbehandlung als wiederverwendbare Hilfsfunktion

<?php
function ladeDictionary(EnchantBroker $broker, string $sprache): EnchantDictionary|false
{
    $dict = enchant_broker_request_dict($broker, $sprache);
    if ($dict === false) {
        $fehler = enchant_broker_get_error($broker);
        $meldung = ($fehler !== false) ? $fehler : 'Unbekannter Fehler';
        trigger_error(
            'Enchant-Dictionary konnte nicht geladen werden: ' . $meldung,
            E_USER_WARNING
        );
    }
    return $dict;
}

$broker = enchant_broker_init();
$dict = ladeDictionary($broker, 'de_DE');

if ($dict !== false) {
    echo 'Dictionary erfolgreich geladen.' . PHP_EOL;
}

enchant_broker_free($broker);
Dictionary erfolgreich geladen.

// Wichtig · Fallstricke

Ab PHP 8.0 gibt enchant_broker_init() eine EnchantBroker-Objektinstanz statt einer Ressource zurück. Der Aufruf von enchant_broker_get_error() bleibt jedoch in beiden Versionen identisch.

Da die Funktion false zurückgibt, wenn kein Fehler vorliegt, sollte der Rückgabewert stets mit !== false geprüft werden, um nicht fälschlicherweise einen leeren String als Fehlerfreiheit zu interpretieren.