PHP Tutorial für Anfänger

  • So ihr künftigen Web-Entwickler.


    Ich habe beschlossen hier mal ein kleines PHP Tutorial für Einsteiger zu erstellen.
    Dieses Tutorial soll am Ende mehrere Lektionen enthalten und ab und an geupdated werden.
    Kleine Codeschnipsel im Text werde ich kursiv darstellen wie hier <?php echo "test"; ?>


    Wer Fragen zum Tutorial, Vorschläge zur Verbesserung oder Wünsche hat kann mir eine PN schreiben.


    Lektion 1 - Hello World
    Lektion 2 - Kommentare
    Lektion 3 - Variablen und Arrays
    Lektion 4 - If Abfrage
    Lektion 5 - Schleifen
    Lektion 6 - Switch Abfrage
    Lektion 7 - Scopes
    Lektion 8 - Funktionen


    MfG Sick^

  • Lektion 1 - Hello World:


    Wie in jeder Anderen Programmier- und Scriptsprache beginnen wir mit der Ausgabe des Textes "Hello World".
    Am Anfang der Lektion werde ich euch zunächst ein paar Erklärungen liefern und später den gesamten Code posten.



    Jeder PHP-Code beginnt mit <?php und endet mit ?>. Dabei kann man meist auch das php weglassen und nur <? schreiben, was aber nicht zu empfehlen ist da dies nicht immer und überall klappt.
    Texte bezeichnet man in der Programmier welt als Strings und werden durch doppelte oder einfache Anführungszeichen dargestellt. Das sieht in etwa so aus
    "Ich bin ein String mit doppel anführungszeichen" oder so 'Ich bin ein String mit einfachen Anführungzeichen'.


    Möchte man Anführungszeichen in einem String benutzen schreibt man diese mit \" wie in diesem Beispiel "Hier befinden sich \"Anführungszeichen\" im String".
    Diese Form der Darstellung von Zeichen nennt man Escapesequenz. Es gibt auch noch einige andere Sequenzen.
    Hier eine kleine Liste von Sequenzen:

    • \t -> Tabulator Sprung
    • \n -> Zeilenumbruch (eng. New Line)
    • \\ -> Darstellung vom Backslash
    • \$ -> Bevorzugt um Dollarzeichen darzustellen (ohne \ wird dort eine Variable vermutet)
    • \' -> Einfaches Anführungszeichen
    • \" -> Doppeltes Anführungszeichen



    Die Ausgabe des Strings würde dann so aussehen Hier befinden sich "Anführungszeichen" im String.


    Ausgeben tut man einen String mit dem Befehl echo. Hier das Bsp.: echo "ich bin ein String";
    Hier ist zu beachten das JEDE Anweisung mit einem Semikolon beendet werden muss.
    Vergisst man das Semikolon bekommt man einen Error da der Server nicht weiß wo die Anweisung zu ende ist.


    So genug für die Erste Lektion hier der Code.


    PHP
    1. <?php
    2. echo "\"Hello World\"!";
    3. ?>
    4. Ausgabe: "Hello World"!
  • Lektion 2 - Kommentare:


    Kommentare kann man zwischen den Code schreiben ohne das diese später vom Server beachtet werden.
    Man sollte nach möglichkeit viel Kommentieren damit man selber oder auch andere sich später leicht in den Code einfinden und ihn schnell verstehen.


    Es gibt einzeilige Kommentare, mehrzeilige oder kurz Kommentare.


    Die einzeiligen werden durch ein DoppelSlash // markiert. Ab dem // bis zum ende der Zeile wird der Text später nicht vom Server beachtet.


    Mehrzeilige und Kurzkommentare kann man quasi überall einbringen. Das Kommentar wird durch ein /* gestartet und durch ein */ beendet.
    Alles was dazwischen steht wird wieder vom Server nicht beachtet.


    Hier mal ein Beispiel für die Kommentare.


  • Lektion 2 - Variablen und Arrays:



    Variablen und Arrays dienen zum aufbewahren von Werten (eng. Value) welche man so einlesen, auswerten, verarbeiten und ausgeben kann.
    Eine Variable wird mit einem Dollarzeichen $ und dem Bezeichner gekennzeichnet. Bsp.: $var1
    Der Bezeichner einer Variable darf von 0-9 und a-z alle Ziffern und Buchstaben beinhalten.
    Zudem darf der Unterstrich _ verwendet werden.


    In PHP darf eine Variable anders als in Programmiersprachen jeden Datentyp beinhalten welcher auch nicht angegeben werden muss.
    Grundsätzlich werden in PHP auch keine Datentypen bis auf wenige Ausnahmen verwendet.


    Der Bezeichner der Variable sollte möglichst für seinen Inhalt oder die Verwendung sprechen und so knapp wie möglich und
    dennoch verständlich bleiben.


    Hier mal die Verwendung von Variablen bei einer Ausgabe.



    Variablen kann man in PHP mit einem Punkt . verknüpfen / aneinander hängen.



    Nun erstmal zu den Arrays ;)
    Arrays kann man sich so vorstellen das es eine Liste von Variablen ist.
    Ein Array hat einen Index, welcher normal bei 0 beginnt, womit man den gewünschten Platz in der Liste anspricht.
    Der Index kann sowohl ein String als auch eine Zahl sein was natürlich auch für den Wert gilt.


    Hier ein Bild was ein gefülltes Array verdeutlichen soll.




    Jetzt stellt ihr euch die frage wie erzeuge ich ein Array?...
    Ganz einfach mit $var1 = array();. Nun ist die Variable var1 ein leeres Array.


    Weitere infos über die Funktion array() findet ihr auf php.net


    Mit der Funktion array() lassen sich natürlich auch vorgefüllte Array erzeugen.
    Bsp.: $var1 = array("apfel", "birne", 3, 4, 5);
    Mit diesem Code wird ein Array erzeugt sodass den Werten der Index beginnend bei 0 automatisch zugewiesen wird.


    Man kann das Array auch erzeugen und den Index selber festlegen.
    Bsp.: $var1 = array(1 => "Apfel", "Index2" => "Birne");
    Nun haben wir ein Array mit dem Index 1 und dem dazugehörigen Wert "Index2" und dem Index "Index2" und seinem Wert "Birne"



    Wenn ich einen Wert aus dem Array zum Ausgeben haben möchte sieht das so aus.



    Man kann eine Variable oder ein Array auch erst Deklarieren und später Initialisieren. Das heißt ich lege vorher den Bezeichner der Variable/ des Arrays fest und weißse später die Werte zu.


    Bsp.:

    PHP
    1. $var1;
    2. $var2;
    3. $var3 = array();
    4. $var1 = 1;
    5. $var2 = 4;
    6. $var3["index"] = 5;


    Das ist vor allem nützlich wenn man eine Variable Global braucht.
    Dazu später mehr.

  • Lektion 3 - If Abfrage:


    Die If (zu Deutsch wenn) Abfrage dient zur Überprüfung eines Falles.
    Hier der Aufbau der If-Abfrage:
    if( Abfrage )
    {
    Anweisungsblock
    }


    Die Abfrage ist hier in normalen runden Klammern zu halten und der Anweisungsblock in geschweiften Klammern.
    Erlangt man in der Abfrage eine Übereinstimmung ( true ) so wird der Anweisungsblock ausgeführt, andernfalls (false) wird der Anweisungsblock übersprungen.


    Hier ein Bsp.:

    PHP
    1. <?php
    2. $var1 = 1;
    3. $var2 = 99;
    4. if( $var1 < $var2)
    5. {
    6. echo "Die Abfrage Stimmt.";
    7. }
    8. ?>


    Wie man sieht stimmt der Fall das $var1 kleiner als $var2, der Fall ist true (zu deutsch wahr), ist und somit wird der Anweisungsblock ausgeführt.


    man kann die if-Abfrage auch anders Schreiben solange die Reihenfolge stimmt.
    Bsp.:

    PHP
    1. <?php
    2. if(Abfrage){ Anweisung }
    3. ?>


    Hier Liste ich mal Operatoren die zum vergleich verwendet werden können.

    • == Überprüfung auf Gleichnis
    • != Überprüfung auf Ungleichnis
    • < Überprüfung ob kleiner als
    • > Überprüfung ob größer als
    • <= Überprüfung ob kleiner oder gleich
    • >= Überprüfung ob größer oder gleich


    Zudem gilt für die if-Abfrage das eine Zahl die ungleich 0 ist immer true ( wahr );



    Die if-Abfrage lässt sich noch erweitern durch ein else. Das heißt wenn der geprüfte Fall nicht eintrifft so wird der Anweisungsblock von else aufgerufen.
    Dabei ist zu beachten das das else keineswegs Pflicht bei der Abfrage ist
    Hier ein Bsp.:


    Wie man hier sieht ergibt der Fall ein false und es wird der Anweisungsblock von else aufgerufen.



    Auch jetzt noch lässt sich die if-Abfrage erweitern. Das else if bietet die Möglichkeit nach der Prüfung des ersten Falls noch einen weiteren Fall zu prüfen.
    Hat man nach dem if noch ein else if angehangen so kann man immernoch ein else einbringen falls garkein Fall stimmt. Die else if Erweiterung ist ebenfalls keine Pflicht.
    Das sieht dann so aus.


    Wie man sieht wird erst die dritte Abfrage einen übereinstimmenden Fall, ein true, liefern und somit nur der dritte Anweisungsblock ausgeführt.



    Hat man in seinem Anweisungsblock nur eine Zeile so kann man sich die geschweiften klammern sparen.

    PHP
    1. <?php
    2. if ($var1 == $var2)
    3. echo "Ist gleich";
    4. else if ($var1 > $var2)
    5. echo "Ist größer";
    6. else
    7. echo "keine Übereinstimmung";
    8. ?>



    Hat man eine kleine Abfrage wo man z.B. nur wissen möchte ob etwas true ist, um einen neuen Wert zuzuweisen, kann man das auch so machen.


    PHP
    1. <?php
    2. $var1 = 1;
    3. $var2 = 99;
    4. echo $var1 != $var2 ? "Der Fall Stimmt" : "Der Fall Stimmt nicht";
    5. ?>


    Wie man sieht hat man hier eine if-Abfrage auf einen minimalen Teil begrenzt.
    Der Aufbau sieht wiefolgt aus.


    Abfrage ? wenn true : wenn false;


    Zu beachten ist hierbei das diese Art der Abfrage ein Teil einer Anweisung ist und somit am ende ein Semikolon stehen muss.

  • Lektion 5 - Schleifen:


    Es gibt in PHP 4 verschiedene Schleifen. for, foreach, while und do-while.


    Die for-Schleife ist so Aufgebaut das man 2 Felder für Anweisungen und 1 für die Abfrage hat. Diese sind alle durch Semikolons getrennt.
    Hier der Aufbau

    for( Anweisung; Abfrage; Anweisung)
    {
    Anweisungsblock
    }


    In der Regel nutzt man die erste Anweisung um eine Variable zu Deklarieren und zu Initialisieren. Die 2te Anweisung Incrementiert oder Decrementiert die zuvor Initialisierte Variable. Die Abfrage verhält sich nach den selben Regeln wie bei der if-Abfrage. Liefert die Abfrage ein true zurück wird der Anweisungsblock ausgeführt.


    Hier ein Beispiel welches ein komplettes Array ausgibt.


    Möchte man mehrere Variablen in der Anweisung1 erstellen so trennt man diese durch ein Kommar.
    Bsp.: for( $i=0, $j=10; abfrage; $i++, $--) { }


    Man kann im for-Kopf auch alle Anweisungen und die Abfrage weglassen und schon hat man eine Endlosschleife.
    Bsp.: for( ; ; ;) { }


    Oder man nimmt nur die Abfrage. Bsp.: for( ; $var1 < $var2; ) { }



    Diese Schleife ist in diesem fall identisch mit der while-Schleife.
    Wie der Name while schon sagt wird die Schleife solange Iteriert ( durchlaufen ) , wie der geprüfte Fall true liefert.


    Hier der Aufbau:
    while( Abfrage)
    {
    Anweisungsblock
    }


    Übergibt man dieser Schleife ein true oder eine Zahl ungleich 0 ( wir erinnern uns Zahl ungleich null immer true und so... ) hat man wieder eine Endlosschleife.


    Eine Schleife kann man im Anweisungsblock immer durch ein break unterbrechen und durch ein continue zum nächsten Schleifendurchlauf springen.
    Nach diesen Anweisungen wird der nachfolgende Code nicht mehr ausgeführt ( bei continue erst im nächsten Durchlauf wieder).


    Bei der while-Schleife wird immer vor dem Anweisungsblock zuerst der Fall überprüft.
    Anders ist das bei der do-while-Schleife. Hier wird erst Ausgeführt und dann geprüft.


    Aufbau:
    do
    {
    Anweisungsblock
    } while( Abfrage );


    Zum Schluss gibts da noch die foreach-Schleife.
    Sie dient zum Iterieren der Arrays und steuert zu einer kompfortablen und leichten Verarbeitung bei.


    Aufbau:
    foreach ( Array as WertAlsVariable)
    {
    Anweisungsblock
    }


    oder
    foreach (Array as IndexAlsVariable => WertAlsVariable)
    {
    Anweisungsblock
    }


    Wie man sieht übergibt man das Array und legt eine Variable fest welche den Wert / Index des aktuellen Arrayslots beinhaltet.


    Hier ein Anwendungsbeispiel:


  • Lektion 6 - Switch Abfrage:


    Da die If-Abfrage mit ihrem ewigen else if oftmals zu Klobig und unübersichtlich wird gibt es noch die switch-case Abfrage.
    Aufbau:
    switch(zuPfrüfendeVariable)
    {
    case Fall1: Anweisungsblock
    case Fall2: Anweisungsblock
    ...
    case Fall10: Anweisungsblock
    default: Anweisungsblock
    }


    Zu beachten ist das in dieser Abfrage der Anweisungsblock ohne geschweifte Klammern steht.
    default steht für den Fall das kein anderer Fall zutrifft.
    Beendet man einen Anweisungsblock nicht mit break, so wird weiterhin geprüft ob die nachfolgenden Fälle stimmen.


    Hier ein Anwendungsbeispiel:


    Man kann die Abfrage nach belieben verlängern und die default-Abfrage ist keine Pflicht.

  • Lektion 7 - Scopes:


    Unter Scopes versteht man den Bereich wo eine Variable oder ein Array gültig ist.
    Z.B. sind Variablen die in einer Schleife Deklariert und Initialisiert werden nur innerhalb der Schleife, also Lokal, gültig und können nur dort verwendet werden.
    Variablen die außerhalb der Schleife deklariert wurden können in der Schleife benutzt und verändert werden sodass man nach der Schleife die Variable mit dem veränderten Wert nutzen kann.


    Hier ein Bsp.:



    Zudem kann man Variablen auch so deklarieren, dass man sie in anderen Klassen und Funktionen nutzen kann.
    Dazu später mehr.

  • Lektion 8 - Funktionen:


    Funktionen dienen dazu den Code zusammen zu fassen und später an einer anderen Stelle aufzurufen.
    Dadurch wird der Code übersichtlicher und verständlicher.
    Aufbau:


    function Bezeichner ( Parameter )
    {
    Anweisungsblock
    }


    Hier ein Bsp. zur Deklaration und zum Aufruf einer Funktion mit 2 Parametern:


    Man kann die Parameter in der Funktion auch optional machen ( nicht Pflichtig beim Aufruf ).
    Bsp.: function CallSomething($var1, $var2 = null, $var3 = 5){ }


    Somit haben die Variablen $var2 und $var3, falls nicht als Argument an die Funktion übergeben, die Werte null (leer) und 5.


    Selbstverständlich kann man auch eine Funktion in einer Funktion aufrufen sofern der Scope das zulässt.