phpbar.de logo

Mailinglisten-Archive

[php] Infos ueber Klassen

[php] Infos ueber Klassen

Matthias Spork matthiasspork at genion.de
Son Aug 17 21:37:42 CEST 2003


Frage vorweg:
Kann man Objekte in Sessionvariablen packen um Speicher zu sparen?

>der Sinn entfaltet sich doch erst wenn man mehrere Objekte gleichzeitig
hat.
>Ich komm einfach nicht von Funktionen und Arrays weg. Oder ist es einfach
>nur eine andere Art zu programmieren? Oder kann ich damit irgendwas machen
>was ich vorher nicht konnte?
>
>Sorry, Anfängerfragen :)

Bitte verbessern, wenn Denkfehler drin sind:


Nehmen wir mal an, du baust dir ein Programm mit einer Vielzahl von
Funktionen.
Du nimmst bereits Funktionen, weil du dir arbeit sparen willst. Nun
klatschst
du alle Funktionen in eine Datei und includest diese jedes Mal, auch wenn du
nur
eine der 500 Funktionen brauchst. Wenn du nun auf Variablen, die aus anderen
Funktionen
resultieren, rankommen willst, musst du diese entweder "globalisieren" oder
mit
in die Funktion geben.


Hier zwei Vorteile nun von OOP:

1.

Du kannst dir mehrere spezialisierte Klassen bauen, die wiederum Funktionen
(Die heißen in Klassen dann Methoden) enthalten. Die Klassen können dabei
auch
aufeinander aufbauen.

Klassendefinition:

class Küche
class Bad

class Kühlschrank extends Küche
class Klo extends Bad

Class Klostein extends Klo {

Wenn du nun die Klasse 'Klostein' instanziierst, hast du gleichzeitig
Zugriff auf die
Methoden von Klostein, Klo und Bad. Die Methoden rund um die Küche werden
gar nicht betrachtet
und nicht in den Speicher geladen.


2.
Bauen wir nun mal die Klasse Klostein:

Class Klostein extends Klo {

 var $klosteincolor;

 function set_klostein_color( $color ) {
  $this->klosteincolor = $color;
 }

}

$class = &new Klostein();
$class->set_klostein_color( "red" );
echo $class->klosteincolor;

Wenn du die Methode set_klostein_color( "red" ) aufrufst, kannst du nun ohne
weiter Klimmzüge,
auf die Variable "klosteincolor" von überall im Objekt zugreifen.


Kurz gesagt: Alles wird übersichtlicher und es spart arbeit. Ist aber nur
sinnvoll bei größeren
Projekten.


matze


php::bar PHP Wiki   -   Listenarchive