Mailinglisten-Archive |
P. Genna Privat schrieb: > Sebastian Mendel schrieb: >> P. Genna Privat schrieb: >> >>> Im Kopf macht es Sinn, >>> aber warum gehts trotzdem nicht? >>> Code selbsterklärend: >>> >>> <?php >>> class main { >>> public function set($class){ >>> $this->$class = new $class; >>> } >>> } >>> >>> class math{ >>> public function add($a, $b){ >>> return $a + $b; >>> } >>> } >>> >>> class view extends main { >>> public function show($a, $b){ >>> echo $this->math->add($a, $b); >>> } >>> } >>> $run = new main; >>> $run->set("math"); >>> $run->set("view"); >>> $run->view->show(5,6); >>> >> $run->view->math gibt es nicht! sondern nur $run->math >> >> weil in $run->view kein $this->math ($run->view->math) existiert >> >> dies hast du oben in $run erzeugt, aber nicht in $run->view >> >> > Also die Idee war folgende: > > 'math' verwaltet alle objekte da es sie ja mit 'add' in die > Eigenschaften lädt. > Ein abruf mit '$run->math->add(5,6);' funktioniert was zeigt das der > Gedanke Früchte trägt. > Was aber wenn andere Objekte auf wiederum andere Objekte zugreifen > müssen während ich sie rufe? > Die Methode 'show' von 'view' zum Beispiel. > Für den Fall, so dachte ich zumindest, benutze ich 'extends main' da > dadurch ja der Zugriff auf die Eigenschaften des Oberobjektes 'main' > möglich sein soll wo 'math' residiert. 1. Klassen !== Objekte "extends" erweitert eine Klasse, aber nicht zur Laufzeit ein Objekt d. h. die Klasse 'view' ist eine Erweiterung der Klasse 'main' hat also alles von ihr geerbt, das Objekt 'view' steht aber in keinem Zusammenhang mit dem Objekt 'main' -- Sebastian Mendel
php::bar PHP Wiki - Listenarchive