PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : frage zur php syntax


|Coding
01.07.2002, 23:38:54
hi,

mir ist jetzt schon öffters diese syntax aufgefallen.

$variable->$sülz

nur was bewirkt das "->" ?

ich weiß nichts damit anzufangen.

Nev
02.07.2002, 00:45:52
HI |Coding

dieses -> kommt bei Klassen vor

Hmm, wie beschreibt man jetzt eine Klasse???


Eine Klasse besteht aus einem Konstruktor und Funktionen, wobei diese Öffentlich oder Privat sein können.

Was bringts??

Du schreibst eine Master-Klasse, von dieser Klasse machst du dann eine Instanz (wie auch immer sie jetzt heissen mag).

Wo du auf Funktionen dieser zugreifen kannst.

Das Beispiel ist ein DB-Zugriff über eine Klasse

xtension
02.07.2002, 10:15:06
Hi,

ein etwas besseres Beispiel um sich den Sinn von Klassen begreiflich zu machen wäre ein Onlineshop:

man definiert eine 'Basisklasse' (sie stellt eine Art Schablone dar) z.B.: den Warenkorb

class warenkorb {
var $produkte_im_warenkorb;

function hinzufuegen_von_artikeln($artikel_nummer, $anzahl) {
$this->$produkte_im_warenkorb[$artikel_nummer] += $anzahl;
}

usw. .....
}

Diese Klasse Warenkorb enthält Variablen (huhu, ein Array ;-) ich liebe Arrays) zum speichern der Waren und Funktionen z.B.: zum hinzufügen und entfernen der einzelnen Produkte...

Von dieser Basisklasse lassen sich nun Objekte (damit wird im eigentlichen Sinne "gearbeitet") erzeugen, die 'Instanzen'

das geschieht mit 'new' z.B.:

$basket = new warenkorb
($objekt = new Basisklasse)
Objekte besitzen die selben Variablen, Funktionen und Eigenschaften wie die Basisklasse.

Mit -> wird innerhalb eines Objekte auf Variablen und Funktionen zugegriffen

$warenkorb -> hinzufuegen_von_artikeln ("254",2);

Der Artikel 254 wird 2-mal in den Warenkorb gelegt.


Zu einer Klasse gehört nicht unbedingt ein Konstruktor, man kann (muss man aber nicht) ihn definieren, er stellt eine Funktion dar die autom. aufgerufen wird wenn ein neues Objekt einer Klasse erzeugt wird.

................................................

Ich bin mir zwar nicht sicher aber, das mit dem Privat oder Öffentlich funktioniert in PHP glaub ich nicht.....

Wenn ich mich nicht irre...

Nev
02.07.2002, 10:46:53
@xtension

Stimmt hab es mit einer anderen Sprache verwechselt.
PHP macht keine Unterscheidung zwischen Privat und Public-Funktionen.

Matt
02.07.2002, 10:56:08
ab php5 soll es aber einen unterschied geben, die zend2 engine hat zum Thema "klassen" einiges dazugelernt. es soll private und öffetliche funktionen geben, destruktoren, verschachtelte klassen usw.

stell dir ne klasse wie einen container von funktionen vor, in dem eigene variablen und eine eigne umgebung herrschen, die wenig mit der aussenwelt zu tun haben müssen. Um in den container hineinzukommen, rufst du die methoden (=funktionen in einer klasse) über den Pfeil (->) oder über doppelten dokkelpunkt (dazu muss die klasse allerdings nicht instanziert sein) auf.

|Coding
02.07.2002, 19:19:36
hi,

hmm, eigendlich wollte ich ja nur wissen was dieser pfeil (->) beteuten und warum man ihn einsetzt. was eine klasse (class) ist weiß ich, aber denoch vielen dank.

markus.thiede
03.07.2002, 00:27:27
Also ums ganz einfach zu machen stell dir vor die Variable $this ist ein Zeiger der auf verschiedene Variablen Zeigt.
Mit dem '->' gibst du an auf welche Variable du zugreifen möchtest. ($this kann naturlich auch auf funktionen zeigen.)

Schön Gruß an Nev den C++ freak.

xtension
03.07.2002, 09:01:45
Ich wollt ja mit dem Beispiel verdeutlichen was der '->' bewirkt, hoffe das ist gelungen....

Natürlich weisst du (|Coding) was Klassen sind, wenn mein (auch für die Allgemeinheit gedachtes) Posting etwas am Ziel vorbei geschossen ist, tuts mir leid.