echo $begrüßung;
ich steh gerade etwas auf dem Schlauch ;) Folgendes Szenario:
class A {
protected $foo;public function __get($property) {
return ( isset($this->$property) ) ? true : false
}
}class B {
protected $bar;
}$b = new B;
$b->foo; // true
$b->bar; // false
Das ist nicht direkt der von dir verwendete Code. Es fehlen Teile, nämlich ein "extends A" (und eine Zuweisung, aber dazu komme ich später). Außerdem hast du nicht getestet, ob sich das Beispiel genauso verhält, denn in beiden Fällen kommt false raus. Das liegt daran, dass die Eigeschaften zwar existieren, aber ihnen kein Wert zugewiesen ist. Sie haben dann den Default-Wert null und der ergibt beim isset() ebenfalls false.
Wenn du nun
protected $foo = 42;
und
protected $bar = 23;
notierst, oder die beiden Eigenschaften anderweitig sinnvoll (außer eben null) initialisierst, erhältst du beides Mal true.
Außerdem liefert isset() bereits true oder false als Ergebnis. Die Verwendung des ternären Operators plus true und false ist überflüssig.
echo "$verabschiedung $name";