PHP Kurs Logo  
 
Buttons PHP Kurs - Kapitel Trennlinie Downloads Trennlinie Was brauche ich ? Trennlinie Entwickler Jobs Trennlinie Kontakt Trennlinie Impressum Buttons
 
 
Menu
Allererste PHP Schritte
- Webserver Installation
- PHP Editor Installation

PHP Grundlagen
- PHP Grundwissen
- Mein erstes Programm
- Kommentare einfügen
- Variablen
- PHP+HTML mischen
- If Abfragen
- Rechenarten
- Arrays
- Schleifen
- Funktionen
- Klassen
- Includes
- Sessions und Cookies
- Login mit Sessions
- Login mit Datenbank
- Referer auslesen
- Wert aus Datenbank
- Variablen übergeben

MySQL Grundlagen
- Was ist das ?
- Erste Schritte
- Verbindung herstellen
- Einfache SQL Befehle
- SQL Injection

Häufig gefragt
- Was ist Adwords ?
- Interessante Links
- Wasserzeichen mod_rewrite
- Thumbnails erstellen
- PHP Gästebuch
- PHP Header
- Webseiten auslesen
- Socket Verbindungen
- E-Mail Adressen prüfen
- E-Mails versenden
- $_GET & $_POST
- Datenbank sichern
- Server DDOS Angriffe Abwehren
- Webhosting - Worauf ist zu achten ?
- Fachübersetzungen
- Anbieter finden

Interessante Artikel
- Soft-Skill-Zertifizierung
- Sicherheits Workshops


Klassen in PHP - eine Bibliothek für Funktionen

Jetzt wissen wir was Funktionen sind. Wenn Ihr jetzt unzählige einzelne Funktionen schreibt und diese alle im Quellcode habt, wird es irgendwann auch unübersichtlich. Aus diesem Grund nimmt man alle Funktionen und vereint diese alle zusammen in einer Klasse - einer Bibliothek für Funktionen. Sinnigerweise unterteilt man am besten die Klassen dann noch nach dem was Sie machen. Zum Beispiel eine Klasse um E-Mails zu bearbeiten, zu versenden - eine Klasse um Grafiken zu erstellen, zu kopieren, zu verkleinern - eine weitere Klasse wieder für andere Funktionen die vom Thema zusammengehören.

Diese Klassen packt man in extra Dateien. So hat man sich Standardfunktionen geschaffen die man immer wieder verwenden kann, ob in diesem Programm welches Ihr gerade schreibt oder im nächsten Programm.

Es können Variablen innerhalb einer Klasse definiert werden, auf die auch sämtliche Funktionen zugreifen können. Funktionen (Methoden) innerhalb einer Klasse können sich auch gegenseitig aufrufen.

Beispiel:

<?php
    
class meineklasse
        
{
        var 
$testvariable "12345";

        function 
meineklasse()
            {
            
# dieses "function" heisst wie die Klasse - sobald die
            # Klasse mit NEW erstellt wird, wird diese function
            # als erstes aufgerufen - ohne dass wir sie manuell
            # starten
            
}

        function 
schreibehallo()
            {
            echo 
"Hallo<br>";
            }

        function 
schreibetext($text)
            {
            echo 
$text "<br>";
            }

        function 
schreibetestvariable()
            {
            echo 
$this->testvariable "<br>";
            }
        }

    
$h = NEW meineklasse();
    
$h->schreibehallo();
    
$h->schreibetext("du da ...");
    
$h->schreibetestvariable();

    
$h->testvariable "67890";
    
$h->schreibetestvariable();
?>

Ausgabe:Hallo
du da ...
12345
67890

Mit class meineklasse haben wir die Klasse geöffnet und Ihr den namen meineklasse gegeben. Innerhalb der geschwungenen Klammern von class haben wir unsere ganzen Funktionen getan. Die internen Funktionen eines Objekts (der Klasse) sind Methoden. Die Klasse ist jetzt fertig, aber wir müssen die Klasse in PHP erstellen , instanzieren bevor wir sie verwenden können.

Jetzt möchten wir die Klasse meineklasse benutzen und teilen dies php mit $h = NEW meineklasse(); mit. In $h befindet sich nun die Klasse, das Objekt. Auf sämtliche Funktionen (Methoden) innerhalb dieser Klasse greifen wir mit -> zu, so z.B. $h->schreibehallo();.

Der Konstruktur

Wie Ihr seht existiert eine Funktion, die genauso heisst wie wir die Klasse genannt haben. Dies nennt man Konstruktor. Dies wird aufgerufen , sobald wir php sagen, dass wir die Klasse in $h instanziert haben möchten. Dieser Konstruktor muss nicht unbedingt vorhanden sein. Man könnte hier Startwerte erstellen oder ähnliches.

Nach der Instanzierung von meineklasse in $h, rufe ich die erste function in der Klasse auf ; $h->schreibehallo(); ; danach werden noch zwei weitere Funktionen aufgerufen, um Text auszugeben.

$this-> in php - Aufrufe innerhalb der Klasse

$h->schreibetestvariable(); gibt die Variable aus, die wir innerhalb! der Klasse definiert haben. Theoretisch gesprochen müsste die Klasse die Variable auch mit $h->testvariable ansprechen, da die Klasse selbst aber nicht wissen kann ob der Programmierer die Klasse in $h instanziert hat (oder in einer anderen x-beliebigen die ich ja nennen kann wie ich möchte) gibt es den Standard, dass man innerhalb einer Klasse auf sämtliche Funktionen und Variablen mit $this-> zugreift. Ich könnte auch zweimal NEW schreiben und die Klasse einmal in $h und in $c instanzieren. Jede Klasse in $h und in $c wäre für sich - die eine hat mit der anderen nichts zu tun, sie sind nur aus der gleichen Klasse entstanden.

Rufe ich die Funktion schreibehallo(); auf, dann tue ich dies von aussen jetzt mit $h->schreibehallo(); . Würde ich schreibehallo(); IN DER KLASSE zum Beispiel in der Funktion schreibetext aufrufen wollen, dann müsste ich sie mit $this->schreibehallo(); aufrufen.

Verwirrt ? Beispiel:

<?php
    
class meineklasse
        
{
        function 
schreibehallo()
            {
            echo 
"Hallo<br>";
            }

        function 
schreibeduda()
            {
            echo 
"du da...<br>";
            }

        function 
schreibetext()
            {
            
$this->schreibehallo();    # Funktion aufrufen/starten
            
$this->schreibeduda(); # Funktion aufrufen/starten
            
}

        }

    
$h = NEW meineklasse();
    
$h->schreibetext();
?>

Ausgabe:Hallo
du da ...

Man kann Klassen auch vererben und eine Klasse von einer anderen Klasse aus aufrufen, allerdings gehört dieses nicht in einen Anfängerkurs. Dadurch könnte ich unterschiedliche Klassen nutzen und diese miteinander "verschmelzen".





<<<< zurück Kapitelauswahl vorwärts >>>>




Kommentare: (absteigend sortiert)

Hier stehen noch alte Kommentare, die direkt über die Webseite gemacht wurden. Es kann dort nicht weiter kommentiert werden. Bitte nutzt dafür die Facebook Kommentare.

.:: 14.04.14 - 13:26 Uhr :: Name: Christian ::.
Was hat es mit folgendem Konstrukt auf sich:

public function eineMethode(KlassenName $klasse)
{
...
}

Was wir da übergeben?

Christian

.:: 27.01.14 - 18:55 Uhr :: Name: Lebi ::.
Ich finde das Tutorial total toll. Das eEnzig was mir fehlt sind Übungsaufgaben zu den jeweiligen Themen.

Mfg
Lebi

.:: 08.09.13 - 21:18 Uhr :: Name: Karl Elsner ::.
Oh, das Kommentarfeld mag keine HTML-Tags :-) nu is mein erster Kommentar hier mit nem <br> kontaminiert :-D

.:: 08.09.13 - 21:16 Uhr :: Name: Karl Elsner ::.
Vielen Dank für diese klar verständliche Erklärung von Klassen.<br>
Ich habe bereits Erfahrung in mehreren Skriptsprachen (bash, Perl, Python, Javascript, VB - jeweils mehr oder weniger gut ...) und staune dennoch immer wieder, wie kompliziert Bestandteile von Programmiersprachen in Foren und Tutorials erklärt werden - da helfen die Vorkenntnisse in anderen Sprachen oft wenig. Dass Anfängern da die Motivation flöten geht, kann ich gut verstehen.

Finde ich klasse, das hier mit der Klasse! ;-)

.:: 02.09.13 - 16:07 Uhr :: Name: Sander Petra ::.
Einfach Genial, vielen Dank

.:: 01.09.13 - 14:19 Uhr :: Name: Peter Listug ::.
…also PHP an sich ergibt ja schon zig Möglichkeiten,
aber jetzt wo ich das endlich mit diesen Klassen verstanden habe,
gibt es schier unendliche Möglichkeiten.

Danke schön für diese wunderbare Erklärung.

.:: 24.07.13 - 10:54 Uhr :: Name: Sven Bosma ::.
lerne gerade PHP und muss mich mit Klassen auseinandersetzen. Viele Tutorials bringen mein Gehirn zum kochen jedoch verstehe ich nur Bahnhof. Dieses Tutorial ist viel besser!

Sehr gut zu verstehen

.:: 17.06.13 - 11:12 Uhr :: Name: Vince ::.
Genial! Ich hab alles verstanden :)
War schon lange auf der Suche nach einem Tutorial, das ich auch zu 100% verstehe.

.:: 16.06.13 - 21:44 Uhr :: Name: Andreas ::.
Ich will das ja nicht schon wieder erwähnen aber sehr gut erklärt hätte ich nicht besser machen können "wie auch (;" Sehr gut verständlich und leicht nachzuvollziehen

.:: 15.05.13 - 01:41 Uhr :: Name: Timmeyyy ::.
Hab das irgendwo auch schon geschrieben hier aber wo ich es gerade oben lese, es ist wirklich außerordentlich gut, simpel, effektiv erklärt ohne langes Rumgeschafel und Eloquentzgeprolle wie bei allen anderen Tutorials. Hab in 5 Min. so viele Sachen, die ich trotz breitem PHP-Know-Hows mich immer gefragt habe, hier kurz und knapp erfahren. Daumen hoch, like, und weiter so ;)

.:: 10.02.13 - 23:56 Uhr :: Name: Peter ::.
TOP!! Echt Spitze erklärt! 1000Dank.....

.:: 14.01.13 - 14:57 Uhr :: Name: Michael H. ::.
Endlich jemand der einem unwissenden was erklären kann!
10.000 points für diesen Beitrag!

.:: 16.01.12 - 09:46 Uhr :: Name: dorr Baume ::.
HA! Endlich hab ich das mit diesem "$this->" geschnallt. Eigendlich isses ja garnich so schwer, aber irgendwie wolle mir das bis jetzt nich in den Schädel gehen.

.:: 12.12.11 - 19:27 Uhr :: Name: HIM ::.
Hey
danke für dieses Tutorial,
Dank dir laufen die Basics nun auch bei mir flüssig ;)

Vielleicht solltest du die Variablen und Funktionsnamen etwas erkenntlicher machen. Ich kenne einige, die da so ihre Schwierigkeiten haben, da gut durchzublicken. Immerhin kann man Ja^^ nie wissen, was du dir bei den Namen denkst.

MfG HIM

.:: 20.11.11 - 18:03 Uhr :: Name: manu ::.
Super vielen Dank habe es endlich "geschnallt"!

.:: 05.10.11 - 22:06 Uhr :: Name: Soeren ::.
Hallo und Tag zusammen,

sehr schoen, dieses Tutorial.
Ich habe die ganze Zeit nach einem Tutorial
ueber class in PHP gegooglet, aber nur sehr schwer verstaendliche Tutorials gefunden.
Dann bin ich hierauf gestossen...
Und siehe da, ich habe es -fast vollkommen-
verstanden.

Sehr gut, weiter so...

.:: 28.02.11 - 19:14 Uhr :: Name: Alexander der Kleine ::.
Guten Abend
was bedeutet "RTFM"
mit freundlichen Grüssen
Alexander

.:: 10.01.11 - 23:11 Uhr :: Name: Joe ::.
Hey,
auch vielen Dank :)
Ich muss mich meinem Vorgänger anschließen.
Dies ist genau die Erklärung die ich gebraucht habe um zu kapieren wofür ich OOP und ihre Klassen gebrauchen kann. Bisher war mir unklar warum ich meine Funktionen in Klassen packen soll.
MfG J

.:: 15.12.10 - 21:53 Uhr :: Name: Daugenix ::.
Vielen Dank für diese Tut.
Es ist mir immer sehr schwergefallen in die OOP zu finden.
Dieses Tut hat mir den Start gegeben das Ganze zu verstehen.
Alle anderen Tutorials, sind gleich immer sehr hoch gestochen und schwer verständlich.
Hier ist es simpel und an einfahcne Beispielen erklärt.
Dankeschön :-)

.:: 18.11.10 - 11:00 Uhr :: Name: Charly ::.
Kein Ding Julian. Zwischendurch lösche ich unqualifizierte Kommentare. Da schreiben Leute ich wäre ein "ideot" und würde zuviele "Feler" machen. Man achte auf deren Rechtschreibung. Selbst nichts auf die Reihe kriegen und andere kritisieren ...

Das ist ein Anfänger Tutorial. Hier wird bewusst auf kompliziertes verzichtet, sowohl im Code als auch bei den Formulierungen.

Hier geht es um basics ! Genau das habe ich damals als Anfänger immer gehasst - und die Klugscheisser in den Foren mit ihrem "RTFM" noch mehr.

.:: 17.11.10 - 10:58 Uhr :: Name: Julian ::.
Schreib doch gleich dein eigenes wenn du´s so gut kannst.

.:: 21.10.10 - 19:43 Uhr :: Name: Igor ::.
Hallo Charly,

hier wird zwei Objekten von eine Klasse erzeugen. Oder???

"Ich könnte auch zweimal NEW schreiben und die Klasse einmal in $h und in $c instanzieren.
Jede Klasse in $h und in $c wäre für sich - die eine hat mit der anderen nichts zu tun,
sie sind nur aus der gleichen Klasse entstanden."

P.S.
Leider hast du kein Word wegen Destruktor gesagt. Muss auf sein wenn ein Konstruktor ist. ;o)

Anmerkung Charly: Right !

.:: 07.08.10 - 10:45 Uhr :: Name: Charly ::.
Jup, gibt es. Da es nicht unbedingt essentiell dafür ist, dass eine Klasse funktioniert, hätte ich es in einem weiteren Artikel zum Thema Klassen beschrieben.

Gruß
Charly

.:: 30.07.10 - 16:34 Uhr :: Name: Niranda ::.
Doch, es gibt wie in vielen anderen Sprachen auch public, protected und private ;)
www.php.net - Die Quelle allen Ursprungs :D

.:: 29.07.10 - 16:00 Uhr :: Name: Max ::.
Gibt es in PHP kein public, protected oder private ? Oder wird es nicht erwähnt weil es hier zu weit führen würde ?

MfG
Max

.:: 23.05.10 - 12:08 Uhr :: Name: Charly ::.
Es ist doch wunderbar, dass wir so ein tolles Werkzeug wie Klassen in PHP haben ;-)) Ich habe das Wort mal entfernt, passt wirklich nicht so richtig :D

.:: 16.04.10 - 10:54 Uhr :: Name: Tobias Müller ::.
hi,
was meints du mit: "die klasse ist jetzt WUNDERBAR fertig"?









Content
 
  Bottom Design  


PepperTools.de Software Download | Software Shop
www.imilkowski.eu - Software Programmierung und Webdesign


 


Persönliche Empfehlung
Mit Wix.com eine kostenlose Homepage erstellen ? Einfach, schnell und ohne Vorkenntnisse.