Signatur
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
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);
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);
// 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.