- Achilles - Geschrieben 20. Dezember 2005 Geschrieben 20. Dezember 2005 Hi, bin (noch) ein richtiger Noob in php. Deswegen auch eine wahrscheinlich einfach zu beantwortende Frage. $result = $this->db->getRow($sql); Was bedeutet das "$this" und die Pfeile("->") ?? MfG Achilles Zitieren
Jaraz Geschrieben 20. Dezember 2005 Geschrieben 20. Dezember 2005 $this = Referenz auf das aktuelle Objekt -> = Zugriffsoperator Du greifst also vom aktuellen Objekt aus, auf das Objekt db und davon konkret auf die Methode getRow zu. Das ganze findest du unter objektorientierter PHP Programmierung: http://de.php.net/manual/de/language.oop5.php Gruß Jaraz Zitieren
- Achilles - Geschrieben 20. Dezember 2005 Autor Geschrieben 20. Dezember 2005 THX für die schnelle Antwort. Und was ist in dem Fall das aktuelle Objekt?:confused: Zitieren
McMaiers Geschrieben 20. Dezember 2005 Geschrieben 20. Dezember 2005 Das Objekt ist db getRow($sql) ist die Methode quasi die Funktion der du $sql mitübergibst! Das Objekt db ist die Instanz einer Klasse die du angelegt hast, in der Klasse hast du dann die Methode getRow(). Du kannst nur auf die Methodde zugreifen wenn du vorher ein Instanz der Klasse eben das Objekt erstellst. Das $this-> ist eben die Referenz auf dieses Objekt ... Zitieren
- Achilles - Geschrieben 20. Dezember 2005 Autor Geschrieben 20. Dezember 2005 aso! $db = db_connect(); das ist ein Objekt?? also ist ->db = $db ?? ---------------------- Der Pfeil wird zum Beispiel bei Delphi mit nem Punkt ausgedrückt, ne?? also: Objekt.Methode(); Zitieren
SNOWMAN Geschrieben 20. Dezember 2005 Geschrieben 20. Dezember 2005 Also im Grunde handelt es sich um n Objekt: class myclass{ function foo($a){ return "Hallo ".$a } }[/php] umd nun auf das ding zugreifen zu können und eine Ausgabe zu bekommen muss man eine instanz der klasse erzeugen [php]$Klasse = new myclass(); und nun kann ich die funktion foo auch verwenden $Klasse->foo("Holger"); der Pfeil sagt auf gut deutsch aus "foo ist ein teil von $Klasse" oder "foo ist in Klasse". das mit dem $this ist dann, wenn du in der klasse etwas machen möchtest: class person{ $name = "Max"; function setName1($name){ $name = $name; } function setName2($name){ $this->name = $name; } function getName(){ return $name; } } }[/php] So, Klassen gemacht, sollte selbsterklärend sein Nun, das passiert: [php]$klasse = new person(); $klasse->getName(); // Liefert Max $klasse->setName1("Peter"); $klasse->getName(); // Liefert Max $klasse->setName2("Peter"); $klasse->getName(); // Liefert Peter Und das ist weil: die funktion einen übergabeparameter $name hat, somit ist $name von der Klasse hier nicht gültig und $name = $name überschreibt sich die variable selbst. Durch das $this->name sag ich, das ich $name (übergabe) der Variable name aus der aktuellen Klasse zuweisen möchte. Zitieren
kills Geschrieben 24. Dezember 2005 Geschrieben 24. Dezember 2005 Hi Das Objekt ist db getRow($sql) ist die Methode quasi die Funktion der du $sql mitübergibst! Das ist nicht richtig. db ist ein Attribut des aktuellen Objektes. Von Welcher Klasses dieses Objekt ist, ist aus den o.g. Codeschnipseln nicht erkenntlich! aso! $db = db_connect(); das ist ein Objekt?? also ist ->db = $db ?? nein, siehe letzte Antwort! db_connect() gibt allen anschein nach ein Object zurück, welches dann auch in $db drinne steht. Aber es hat hier noch nichts mit dem $this->db zu tun! aso! Der Pfeil wird zum Beispiel bei Delphi mit nem Punkt ausgedrückt, ne?? also: Objekt.Methode(); Ja genau. Frohe Weihnachten! Gruß, Markus Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.