[GastForen Programmierung/Entwicklung PHP und MySQL Klassenimplementation: Problem mit Zeiger this

  • Suche
  • Hilfe
  • Lesezeichen
  • Benutzerliste
Themen
Beiträge
Moderatoren
Letzter Beitrag

Klassenimplementation: Problem mit Zeiger this

Miro Dietiker
Beiträge gesamt: 699

29. Sep 2003, 09:51
Beitrag # 1 von 3
Bewertung:
(627 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo zusammen!

Ich habe ein grosses Problem mit dem Zeiger/Objekt $this im
Zusammenhang mit einer Klassenimplementation.
Das Problem sehr vereinfacht ist folgendes:
<?PHP
class A
{
var $text;
function B($text)
{
C($this, $text);
echo "Inhalt:'".$this->text."'\n";
}
};

function C($a_obj, $text)
{
$a_obj->text = $text; // GEHT NICHT
}

$a_obj = new A();
$a_obj->B('hallo'); // AUSGABE: "Inhalt: ''" anstelle "Inhalt: 'hallo'"
?>

Die Funktion C muss aus der Klasse ausgelagert sein (sieht natürlich
im Endeffekt überhaupt nicht mehr so aus), sollte aber dennnoch
Zugriff auf übergebene Klasseninstanz haben!
Wenn das hier wirklich nicht geht:
Wie kann dieses Problem sonst gelöst werden? (global zählt nicht)
(Meine Ideen gehen langsam aus *g*, aber noch lache ich ;) )

GrEeZ: Miro Dietiker
X

Klassenimplementation: Problem mit Zeiger this

Miro Dietiker
Beiträge gesamt: 699

29. Sep 2003, 09:53
Beitrag # 2 von 3
Beitrag ID: #52652
Bewertung:
(627 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
ooooops ....

Habe ich doch tatsächlich auf der Zeile ..
function C($a_obj, $text)

.. das & vergessen !!

function C(&$a_obj, $text)

Ich muss nochmal weiterschauen, dann ist es noch etwas anderes
das noch nicht klappt in meinem Problemcode ;)

GrEeZ: Miro Dietiker


als Antwort auf: [#52651]

Klassenimplementation: Problem mit Zeiger this

Miro Dietiker
Beiträge gesamt: 699

29. Sep 2003, 10:07
Beitrag # 3 von 3
Beitrag ID: #52654
Bewertung:
(627 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
War wohl gestern zuspät geworden!

Jetzt geht das ganze Ding, nachdem ich nochmals so gebaut habe
wie ich es mir auch vorgestellt habe...

Muss wohl das nächste Mal noch mehr Durchhaltewillen zeigen .)

GrEeZ: Miro Dietiker


als Antwort auf: [#52651]