dedlfix: Zugriff auf Kind-Eigenschaften in geerbter Methode

Beitrag lesen

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";