echo $begrüßung;
Wieso zum Geier gibt z.B. simplexml_load_file() beim Mißerfolg false zurück? Es ist ein Objekt, da hat verdammt nochmal die Rückgabe null zu sein, wenn das Objekt nicht erzeugt werden konnte und nicht false. Das ist total widersinnig.
simplexml_load_file() ist nur eine einfache Funktion, kein Konstruktor, auch wenn manchmal ein Objekt zurückgegeben wird. Diese Funktion gibt im Fehlerfall genauso ein false zurück, wie das die anderen Funktionen von PHP auch machen. Du solltest immer im Hinterkopf behalten, dass PHP kein objektorientiertes System ist. OOP ist nur ein Zusatz. Deswegen verhält sich PHP in großen Teilen auch nicht wie andere von vornherein objektorintiert geplante Systeme.
Es widerstrebt mir regelrecht, die Initialisierung mit private $xmlobj = false; durchzuführen, nur weil keine sinnvollen Rückgabewerte verwendet werden. Ich möchte jetzt eigentlich gar nicht mehr wissen, wie das bei anderen Funktionen aussieht...
Bleib doch bei null als Zeichen für nicht initialisiert. Dann hast du drei Zustände: ein Objekt im Gutfall, false im Fehlerfall und null wenn die Initialiserung noch nicht abgeschlosse ist.
Vielleicht schaust du dir doch mal die Sache mit den Exceptions an. Im Normalfall tust du als Anwender der Klasse einfach so als ob du ein Objekt bekommst. Im Fehlerfall landest du im catch-Bereich und hast die Fehlerdaten in der Exception. Es existiert dann auch kein Rückgabewert, der dich verwirren kann. Da die Exception die Zuweisung zur Variablen unterbricht, gibt es da auch nichts auszuwerten.
$var = null;
try {
$var = FooInitializing();
// weiter mit $var
catch (FooException $ex) {
log($ex->getMessage());
// Ersatzprogramm für den Anwender
}
echo "$verabschiedung $name";