Sven Rautenberg: OOP PHP Fragen

Beitrag lesen

Moin!

wenn ich das weg lasse

public $Vorname;

public $Alter;
public $Energie;


> funktioniert der Code immer noch :S wieso?  
  
Er wirft aber Notices wegen undefinierter Properties in der Klasse. Schreib mal als allererste Zeile rein:  
~~~php
error_reporting(E_ALL);  

PHP erlaubt, an jedes Objekt beliebig public-Eigenschaften zuzuweisen, ohne sie deklarieren zu müssen. Das ist nur im Sinne von OOP sehr schlechter Stil, denn gerade durch die Deklaration wird ja vereinbart, welche Eigenschaften die Klasse nach außen hin haben soll. Wildwuchs macht es nur schwerer, das Programm zu verstehen und zu debuggen.

das mit der $aktuelleEnergie = $this->getEnergie(); habe ich so gelöst.
ich dachte man könnte es auch so lösen $Energie ist dann immer die aktuelle Energie, aber so funktioniert das nicht. wieso genau?

Die Variable heißt $this->Energie - genauso, wie bei den Methodenaufrufen. Das ist PHP, nicht Java!

- Sven Rautenberg