Hi!
if( isset( $myOffice->GetAddress() ){}
Wie bitte?
War die Kurzform - es sollte nur der Veranschaulichung dienen.
Da PHP nicht faehig ist, den Rueckgabewert einer Methode direkt zu verwenden, muss man den Wert vorher natuerlich einer Variablen zuweisen.
Diese Aussage ist falsch. Rückgabewerte einer Funktion können seit PHP 5 sehr wohl direkt verwendet werden, wenn du damit meinst, dass man auf die Methoden oder Eigenschaften eines zurückgegebenen Objekts zugreifen kann - so wie es deine nächste nicht mehr zitierte Zeile zeigt.
Aber: Die Funktion isset() prüft auf das Vorhandensein einer Variablen, weshalb sie eine Variable erwartet. Etwas anderes zu übergeben, erzeugt einen Parse Error. Wenn deine Variable OfficeInstanz->$Address nicht gesetzt ist, so liefert ein Lesezugriff null zurück. Außerdem gibt es eine Notice, was immer ein Zeichen für eine Schludrigkeit ist. Dieses null gibt deine Getter-Methode zurück. Legtest du es in einer Variable ab, so sollte man meinen, durch den Schreibzugriff existiere diese Variable. Das macht sie auch in der Tat, nur PHP meint beim isset(), dass eine existierende Variable mit Inhalt null nicht existiert. Auf dieses Verhalten PHPs sollte man nicht bauen, finde ich, weil es zu sehr verwirrt. Man setzt eine Variable und fragt im nächsten Moment, ob sie existiert, liest sich so, als traue man PHP beim Variablenerzeugen nicht übern Weg. Erst wenn man diese isset()-Ausnahme kennt, wird einem das Verhalten klar. Schöner wird es dadurch aber nicht.
Lo!