Referenzen funktionieren nicht.
-
Hi!
Gibt es eine möglichkeit, einen referenz über eine Funktion zu übergeben ?
Also ich will nicht über die Variable zugreifen.
Bye
-
Von was redest du? PHP, Perl, ...? Bitte etwas deutlicher ausdrücken
Also ich will nicht über die Variable zugreifen
wie denn dann?
-
Hi!
Ich rede von PHP.
Ich will das eine Funktion die die Referenz übergibt.bsp:
---$var1 = &cClass->GetReverenz(); $var1 = 100;
Das Funktioniert aber nicht. Und meine Frage ist. Das Problem liegt in der Funktion GetReverenz, da php nicht erlaubt eine Reverenz als Rückgaberwert anzugeben.
zb.
[cpp]class cClass
{
var m_var1; function GetReverenz() { return **&**this->m_var1;
}
}[/cpp]Das Problem ist, dass das nicht geht.
Meine Frage:
Gibt es eine Möglichkeit, das irgentwie über eine Funktion zu implementieren ?Bye
-
Imho geht sowas nicht - bin mir aber nicht ganz sicher!
Du würdest ja damit direkten Zugriff auf Membervariablen erhalten (sind doch außerhalb der Klasse ungültig)
-
Hi!
Nein sind sie nicht. Irgentwie hab ich das auch geschaft
Das Problem ist, ich weiß nicht warum das geht !// create object für System-Management $this->m_cSystems = new CSystems( NULL, $this->m_iUserId ); $this->m_cSystems->LoadSystems(); $pSystems = &$this->m_cSystems->GetSystems(); // pointer $dbUdaten = $this->m_cSystems->GetdbMain(); $pSystems[0]->aBuildings[0] = 10;
Ich kann jetzt ( warum auch immer ) über pSystem die Variable in der Klasse CSystems ändern. Die Funktion GetSystems() ist genauso aufgebaut wie GetReverenzen(). Hm php ist... wie soll ich sagen, scheiße Die sollten php so C++ ändern !
Bye
-
Hi!
Ich habe nochwas herrausgefunden. Wenn ich das komplette Array zurück gebe, funktioniert es wennich nur einen Eintrag des Array zurück gebe wiederum nicht.
Komisch.geht:
function GetRegister() { return $this->m_aRegister; }
geht nicht:
function GetRegister( $iRegister ) { return $this->m_aRegister[$iRegister]; }
Ich weiß nicht mehr weiter, ich raste hier aus mit php...
-
afaik gibts keine referenzen in php
-
klar gibt es welche. Sonst wäre php nicht Objekt-Orientiert..
-
was zum teufel haben refferenzen mit oop zu tun ?!
aber ich hab mich trotzdem geirrt http://www.php.net/manual/de/language.references.php
[ Dieser Beitrag wurde am 04.04.2003 um 15:38 Uhr von 1ntrud0r editiert. ]
-
Hi!
Ist einfach so, dass Reverenzen oder Pointer zu oop gehört
-
dann wär das normale c auch ne objekt orientierte sprache !! C gehört aber zu den prozeduralen programmiersprachen !!!
-
Überzeugt
-
Ne, Intrudor hat aber nicht recht. Zumindest ist seine Argumentation völlig falsch.
Wenn Referenzen bzw. Pointer zu einem OO Design gehören, heißt das noch lange nicht, dass Referenzen und Pointer nicht auch in einem strukturierten Design auftauchen dürfen.
Davon abgesehen wäre aber ein Funktionsaufruf ohne die Möglichkeit zu "Call by Reference" oft ziemlich nutzlos.
-
Wenn Deine Funktion eine Referenz zurückgeben soll, so muss diese im Funktionskopf definiert werden:
function &Name($Param){
/* do sth. */
}Siehe auch: http://www.php.net/manual/en/language.references.return.php
Gruß Jens
-
Hi!
Danke, das habe ich gesucht !Bye