Hallo,
ich hab mal eine Frage zu OOP.
Ich möchte ein Script schreiben (einfach zum lernen), welches eine Variable in einer Klasse ändert und dann die Klasse ausführt und die Variable ausgibt.
(Ich verzichte hier absichtlich auf die Verwendung von Parametern [außer auf einen].)
Dazu muss man sagen, das die Klasse "MyClass()" die Verwaltungsklasse für alle anderen Klassen ist. Es wird also ein wenig rekursiv^^
Soweit bin ich schon:
datei1.php:
MyClass() relevanter Ausschnitt, wo der Fehler sein könnte:
Und nun die TestClass():
Wenn ich mal testweise ein paar echos an relevanten Stellen einbaue, um zu sehen, was das Script so übergibt schreibt er folgendes:
Doch als Ausgabe kommt nur:
Mir kommt es also so vor, als würde der Wert nicht richtig gesetzt, denn er liest die Variable nicht aus, tu ich jedoch in der Funktion getParam() ein echo $this->pClass->$name dann erscheint der gewünschte Inhalt "bar".
Ich weiß nicht, wo der Fehler stecken könnte, könnt Ihr mir helfen?
Danke im vorraus!
Gruß.
solar22
ich hab mal eine Frage zu OOP.
Ich möchte ein Script schreiben (einfach zum lernen), welches eine Variable in einer Klasse ändert und dann die Klasse ausführt und die Variable ausgibt.
(Ich verzichte hier absichtlich auf die Verwendung von Parametern [außer auf einen].)
Dazu muss man sagen, das die Klasse "MyClass()" die Verwaltungsklasse für alle anderen Klassen ist. Es wird also ein wenig rekursiv^^
Soweit bin ich schon:
datei1.php:
PHP:
$class = new MyClass("TestClass");
$class->getParam("foo=bar");
$content = $p=getContent();
MyClass() relevanter Ausschnitt, wo der Fehler sein könnte:
PHP:
public function getParam($param) {
$p = explode("=",$param);
$name = $p[0];
$this->pClass->$name=$p[1];
//$this->pClass wird im __constructor mit "TestClass" belegt, oben in datei1.php wird dieser Parameter als einziger übergeben.
}
Und nun die TestClass():
PHP:
<?php
class TestClass {
public $foo; //ist definiert, um zu ändern
function __constructor() {
}
function run() {
return "foo: ".$this->foo;
}
}
Wenn ich mal testweise ein paar echos an relevanten Stellen einbaue, um zu sehen, was das Script so übergibt schreibt er folgendes:
Code:
TestClass initialisiert...
Parameter: TestClass -- foo=bar
Hole Content von TestClass
Doch als Ausgabe kommt nur:
Code:
foo:
Mir kommt es also so vor, als würde der Wert nicht richtig gesetzt, denn er liest die Variable nicht aus, tu ich jedoch in der Funktion getParam() ein echo $this->pClass->$name dann erscheint der gewünschte Inhalt "bar".
Ich weiß nicht, wo der Fehler stecken könnte, könnt Ihr mir helfen?
Danke im vorraus!
Gruß.
solar22