Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

$this-> [Noob-Frage]

Empfohlene Antworten

Veröffentlicht

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

$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

THX für die schnelle Antwort.

Und was ist in dem Fall das aktuelle Objekt?:confused:

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 ...

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();

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.

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

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.