Grundlagen

    • Offizieller Beitrag

    PHP kurz und bündig

    Grundlagen um PHP anwenden zu können mit wenig Worten erklärt. Hierdurch lernt man kein PHP sondern soll an Befehle/Funktionen erinnern.

    Bei der Syntax habe ich mich nicht ganz an den Standard gehalten, da ich zum Syntax und Beispiel oft inneinander integriert habe. Ziel ist von mir, mit möglichst wenig Text den PHP-Code zu beschreiben. Dabei ist nicht die Vollständigkeit im Vordergrund, sondern die Kürze. Dennoch gibt eine Regel:

    [] = Optionaler Wert, Parameter

    BSP = Beispiel

    int = Integer (ganzzahliger Wert)

    str oder string = String (Text)

    Gute Hilfe bietet das PHP-Handbuch (http://php.net/manual/de)

    => Sprachreferenz http://php.net/manual/de/langref.php

    => Funktionsreferenz http://php.net/manual/de/funcref.php

    => String-Funktionen http://php.net/manual/de/ref.strings.php

    => Klassen, Objekte http://php.net/manual/de/language.oop5.php

    Grundlegendes

    [Blockierte Grafik: https://e2h.de/forum/images/Leer300.png]
    PHP Code
    [Blockierte Grafik: https://e2h.de/forum/images/Leer200.png]
    Bedeutung
    <?php
    ?>
    PHP-Tag um PHP-Code in einer HTML-Datei zu identifizieren
    <?php
    [Blockierte Grafik: https://e2h.de/forum/images/Leer10png]echo 'PHP-Code<br>';
    ?>
    [Blockierte Grafik: https://e2h.de/forum/images/Leer10png]HTML-Code<br>
    <?php
    ?>
    Auf diese Weise kann PHP und HTML-Code gemischt verwendet werden
    HTML mit einem <?php echo "PHP-Teil";?> integriert PHP lässt sich auch direkt in eine HTML-Code-Zeile integrieren
    /*
    */
    Kommentarbereich (Mehrzeilig)
    // Kommentar ab hier für eine Zeile
    ; Abschluss von PHP-Anweisungen am Ende einer Code-Zeile
    phpinfo(); Zeigt die PHP-Info an, diese beinhaltet Einstellungen und Infos zu PHP
    echo "$a <br>";
    echo '$a <br>';

    echo $a . '<br>';
    " = interpretiert PHP den Inhalt zwischen den "" => $a wird der Wert ausgegeben
    ' = gibt nur den Inhalt zwischen ' und ' aus => $a wird als $a ausgegeben
    => HTML-Code wird in beiden Fällen interpretiert (<br> führt zu einem Zeilenwechsel)
    => ich bevorzuge ' da man dann selbst entscheiden kann wann z.B. eine Variable als Wert oder als Text ausgegeben werden soll. Mit der dritten Variante wird die Variable und anschließend der Text ausgegeben, der Punkt dient als Concatenate-Zeichen (Verbinder)
    // komplizierter Code
    if ($fehler) {
    [Blockierte Grafik: https://e2h.de/forum/images/Leer10png]goto Fehlerbehandlung;
    }

    Fehlerbehandlung:
    if ($fehler) {
    [Blockierte Grafik: https://e2h.de/forum/images/Leer10png]// aufräumen
    [Blockierte Grafik: https://e2h.de/forum/images/Leer10png]// Ressourcen freigeben
    [Blockierte Grafik: https://e2h.de/forum/images/Leer10png]echo 'Fehler aufgetreten';
    }
    Ab PHP 5.3 wurde der Befehl goto eingefügt. Dies ist sehr umstritten kann aber im Bereich der Fehlerbehandlung wertvolle Dienste leisten. Es ginge zwar auch anders aber schneller gehts mit goto

    goto springt direkt zur angegebenen Marke und führt das Programm an dieser Stelle fort
    require_once $Dateiname; Bindet eine externe Datei ein und führt diese aus
    Im Fehlerfall wird ein Error (E_COMPILE_ERROR) erzeugt

    Variablen

    In PHP müssen Variablen nicht deklariert werden. Ihr Datentyp ergibt sich aus der Art Ihres Inhaltes. Die Namen sollten selbstsprechend sein, so dass keine Erläuterung notwenig wird.

    Variablen müssen immer mit einem $ beginnen und dürfen keine Leerzeichen, Umlaute oder Sonderzeichen enthalten.

    [Blockierte Grafik: https://e2h.de/forum/images/Leer300.png]
    PHP Code

    [Blockierte Grafik: https://e2h.de/forum/images/Leer200.png]

    Bedeutung
    require_once("./DATEINAME.XXX"); Bindet eine PHP-Datei ein wenn diese noch nicht eingebunden wurde
    dirname(__FILE__) Verzeichnisname der aktuellen Datei
    if (!defined("VARI")) define("VARI", "INHALT"); definiert eine globale Konstante, wenn sie noch nicht definiert wurde
    define({Name case sensitiv}, {Inhalt}) übernimmt dabei die Definition
    define({Name}, {Inhalt}, FALSE) = Groß-/Kleinschreibung wird ignorriert
    $a = 'INHALT'; Variable einen Inhalt zuweisen
    echo $a . '<br>'; Variableninhalt ausgeben und am Ende einen Zeilenwechsel durchführen
    print $a; Variableninhalt ausgeben [Operator] liefert eine Rückgabe 1 = ok, 2 = nio
    $a = 'INHALT';
    $b = 123;
    echo gettype( $a );
    PHP kennt keine Datentypen die angegeben werden müssen. Mit gettype() kann jedoch der interne Datentyp ausgegeben werden
    $a wird ein STRING und $b ein INTEGER zugewiesen
    define( 'VARI', 'Inhalt' );
    echo VARI;
    Konstante wird definiert und ausgegeben
    isset( $a ); Variable auf Vorhandensein prüfen
    => 1 = TRUE
    => 0 = FALSE, Variable wurde nicht definiert
    empty( $a ); Variable auf Inhalt prüfen
    => 1 = TRUE, Inhalt vorhanden
    => 0 = FALSE, leer
    echo isset( $a );
    print_r( isset( $a ) );
    var_dump( isset( $a ) );
    Ergebnis der Funktion isset() ausgeben => 1, 0 wird nicht ausgegeben
    Zusätzlich wird auch 0 ausgegeben => 1 oder 0
    Zusätzliche Infos ausgeben => bool(true) oder bool(false)
    $a = array( "Elemente" );
    echo $a[0];
    Der Variable $a wird die Elemente als Liste zugewiessen, dabei kann jeder Inhalt (Trennzeichen Komma) ein anderer Datentyp sein
    Variable[Index] kann ein Wert eines Array angesprochen werden

    Gute Übersicht http://php.net/manual/de/ref.array.php
    $a = array( $Index => "Wert", ... ); Der Variable $a wird ein Array mit einem assoziativen Index zugewiesen
    BSP: $a = array('Rot' => '#FF0000', 'Grün' => '#00FF00', 'Blau' => '#0000FF')
    $a = array( $Index => array( "Elemente" ), )
    echo $a[0][0];
    Arrays erstellt man, indem als Wert das Schlüsselwort array() verwendet wird
    BSP: $a = array('Rottöne' => array('#FF0000', '#FF6464', '#FFC8C8'))
    foreach ( $Array as $Variable ) {}
    print_r( $Array );
    var_dump( $Array );
    Möglichkeiten wie ein Array ausgegeben werden kann

    BSP: $a = array('Rot' => '#FF0000', 'Grün' => '#00FF00', 'Blau' => '#0000FF');
    foreach ( $a as $idx => $wert ) {
    [Blockierte Grafik: https://e2h.de/forum/images/Leer10.png]echo $idx . ': ' . $wert . '<br>';
    }
    $a[ $Index]] = "Inhalt"; Einem Index eines Arrays einen Inhalt zuweisen, ist der Index nicht vorhanden wird er angelegt
    unset($a[$Index]); Löscht ein Element aus der Liste eines Arrays
    array_pop( $Array ) Entfernt das letzte Element eines Arrays
    array_push( $Array, "Elemente"); Fügt ein oder mehr Elemente an das Ende eines Arrays an
    array_key_exists( $Indexwert, $Array ); Prüft ob ein Index im Array vorhanden ist => bool(true) oder bool(false)
    $b = array_flip($a); Tausch den Index mit dem Wert eines Arrays, Text wird nur bis Leerzeichen übertragen, Zahlen und Bool garnicht
    $a[0]='Text' => $b[Text]=0
    sort($a); Sortiert ein Array

    Fallunterschaltungen (Details siehe unten)

    [Blockierte Grafik: https://e2h.de/forum/images/Leer300.png]
    PHP Code
    [Blockierte Grafik: https://e2h.de/forum/images/Leer200.png]
    Bedeutung
    if ( "Bedingung" ) {
    } elseif ( "Bedingung" ) {
    } else {
    }
    Wenn "Bedingung" (ZB $a=$b) erfüllt wird, dann wird der PHP-Code zwischen dem folgenden { und } ausgeführt
    if ( [Bedingung] ) [Aktion]; Kurzform, wenn nur auf einen Wert abgeprüft werden soll
    switch ( $Variable ) {
    [Blockierte Grafik: https://e2h.de/forum/images/Leer10.png]case "Bedingung":
    [Blockierte Grafik: https://e2h.de/forum/images/Leer20.png][Aktion];
    [Blockierte Grafik: https://e2h.de/forum/images/Leer20.png]break;
    [Blockierte Grafik: https://e2h.de/forum/images/Leer10.png]default:
    [Blockierte Grafik: https://e2h.de/forum/images/Leer20.png][Aktion];
    [Blockierte Grafik: https://e2h.de/forum/images/Leer20.png]break;
    }
    Über switch-case können wie bei if-else auch Fallunterscheidungen geroffen werden

    Der Vorteil liegt in der schnelleren Ausführung und Übersichtlichkeit

    Wichtig ist der Abschluss eines case-Falls der Befehl break;
    Fehlt dieser, so werden ab dem zutreffen der Bedingung alle folgenden Befehle ausgeführt

    Schleifen (Details siehe unten)

    [Blockierte Grafik: https://e2h.de/forum/images/Leer300.png]
    PHP Code
    [Blockierte Grafik: https://e2h.de/forum/images/Leer200.png]
    Bedeutung
    for ( $Variable = "Startwert"; "Bedingung"; "Zähler" ) {
    }
    Schleife wird so lange durchlaufen wie die "Bedingung" (ZB $i<5) erfüllt wird
    while ( [Bedingung] ) {
    }
    Schleife wird so lange durchlaufen wie die [Bedingung] erfüllt wird
    while ( [Bedingung] ) {
    [Blockierte Grafik: https://e2h.de/forum/images/Leer20.png]continue;
    }
    Bei dem Befehl continue wird der restliche Code der Schleife ignoriert und das Programm am Anfang fortgesetzt

    Damit keine Endlosschleife produziert wird, muss vor continue unbedingt der Schleifenzähler verändert werden
    do {
    } while ( [Bedingung] );
    In dieser Schleife wird der Schleifen-Code mind. 1x durchlaufen - die Prüfung wird erst am Ende der Schleife ausgeführt
    foreach ( $Array as $Variable ) {
    }
    Arrays (Variablenfelder) können mit foreach durchlaufen werden

    [Array] beinhaltet dabei alle Werte und auf [Variable] wird beim Durchlauf immer der nächste übergeben

    Funktionen (Details siehe unten)

    Sind Unterprogramme die abgeschlossene Aufgaben übernehmen und ein Ergebniss zurückgegeben wird.

    [Blockierte Grafik: https://e2h.de/forum/images/Leer300.png]
    PHP Code

    [Blockierte Grafik: https://e2h.de/forum/images/Leer200.png]
    Bedeutung

    function FunktionsName ( [$Parameter] ) {
    [Blockierte Grafik: https://e2h.de/forum/images/Leer20.png]return true;
    }
    FunktionsName ( [$Parameter] );
    Schlüsselwort function definiert eine Funktion von { bis }
    Über [Parameter] können Inhalte der Funktion übergeben werden.
    Ein Rückgabeparameter kann mit return definiert werden

    Die Funktion wird durch ihren Funktionnamen aufgerufen.
    function FunktionsName ( [$Parameter] = 'Standardwert' ) {
    [Blockierte Grafik: https://e2h.de/forum/images/Leer20.png]return true;
    }
    echo FunktionsName ( );
    Möchte man einen Parameter mit einem Standardwert definieren geschied dies über = 'Standardwert'.

    In diesem Fall muss der Parameter nicht zwingend übergeben werden
    function FunktionsName ( [$ParameterWert], [&$ParameterReferenz] ) {
    [Blockierte Grafik: https://e2h.de/forum/images/Leer10.png]global $Variable;
    }
    • Variablen in Funktionen sind immer Lokal
    • Parameter werden immer als Wert übergeben, ändert man innerhalb der Funktion hat dies außerhalb keinen Einfluss
    • Mit & kann ein Parameter als Referenz übergeben werden, Änderungen bleiben auch außerhalb der Funktion erhalten
    • Statt & kann auch global verwendet werden, um eine Variable als Referenz zu übergeben, dabei muss jedoch der Name identisch sein
    $param = func_get_args(); Alle Parameter werden der Variable $param zugewiessen => array
    func_num_args () Liefert die Anzahl der Parameter => bool
    func_get_arg ( $intParameterNr ) Liefert Aufgrund Parameternummer den Wert => variant
    function_exists ( $stringFunktionsName ) Prüft ob eine Funktion vorhanden ist => bool

    Interne Funktionen

    Interne Funktionen haben wir bereits vielfach kennengelernt. Es sind Funktionen die kleine Aufgaben übernehmen und einen Wert oder ein Ergebnis zurück liefern. Zum Beispiel Array() definiert einen Array und weist diesen einer Variablen zu. Weitere wichtige sind hier aufgeführt.

    [Blockierte Grafik: https://e2h.de/forum/images/Leer300.png]
    PHP Code

    [Blockierte Grafik: https://e2h.de/forum/images/Leer200.png]

    Bedeutung

    empty($a) Prüft eine Variable ob sie einen Wert beinhaltet

    Weitere interessante Befehle / Operatoren

    Interne Funktionen haben wir bereits vielfach kennengelernt. Es sind Funktionen die kleine Aufgaben übernehmen und einen Wert oder ein Ergebnis zurück liefern. Zum Beispiel Array() definiert einen Array und weist diesen einer Variablen zu. Weitere wichtige sind hier aufgeführt.

    [Blockierte Grafik: https://e2h.de/forum/images/Leer300.png]
    PHP Code

    [Blockierte Grafik: https://e2h.de/forum/images/Leer200.png]

    Bedeutung

    $a = ($Bedingung) ? $b : '[Standardwert]';

    ab PHP 5.3
    $a = $b ?: '[Standardwert]';
    Um einen Standardwert einer Variable zuzuweisen gibt es den ternären Operator. Dieser prüft eine Bedingung und wenn diese nicht zutrifft wird ein Standardwert genommen
    Achtung!!! wenn Ausgangswert ($b) 0 ist interpretiert PHP dies auch als empty. Die if-Anweisung im Beispiel behebt diese Problem
    BSP: $eing = '';
    $ausg1 = ( !empty($eing) ) ? $eing : 'Deutschland';
    $ausg2 = $eing ?: 'Deutschland';
    if ($eing == '0') $ausg1 = $eing;
    if ($eing == '0') $ausg2 = $eing;

    String - Funktionen

    Interne Funktionen haben wir bereits vielfach kennengelernt. Es sind Funktionen die kleine Aufgaben übernehmen und einen Wert oder ein Ergebnis zurück liefern. Zum Beispiel Array() definiert einen Array und weist diesen einer Variablen zu. Weitere wichtige sind hier aufgeführt. Eine gute Übersicht unter http://php.net/manual/de/ref.strings.php

    [Blockierte Grafik: https://e2h.de/forum/images/Leer400.png]
    PHP Code

    [Blockierte Grafik: https://e2h.de/forum/images/Leer100.png]

    Bedeutung

    $p = strpos($a, 'Suchtext');
    $p = strrpos($a, 'Suchtext');
    $p = stripos($a, 'Suchtext');
    $p = strripos($a, 'Suchtext');
    Sucht einen Text innerhalb eines Textes
    stri... ignorriert Groß-/Kleinschreibung
    BSP: if (!strpos($a, 'xxx')) echo 'nicht gefunden';
    $a = strtoupper($a);
    $a = strtolower($a);
    Wandelt den Text in Groß- bzw. Kleinbuchstaben
    $a = trim($a);
    $a = ltrim($a);
    $a = rtrim($a);
    Entfernt Leerzeichen links und/oder rechts vom Text
    $a = substr($a, $abPos[, $Laenge]);
    $a = substr($a, $abPos[, $bisPosVonRechts]);
    $a = substr($a, $abPosVonRechts[, $Laenge]);
    Gibt einen Teil des Strings zurück [] ist dabei Optional
    [$Laenge] (BSP 2) gibt die Anzahl der Zeichen an
    [$bisPosVonRechts] (BSP -3) gibt dann die Zeichen bis zur Pos von Rechts
    [$abPosVonRechts] (BSP -4) schneidet ab Pos von Rechts
    $b = explore( $Trennzeichen, $a); Überträgt den String $a in ein Array $b dabei enstehen einzelne Elemente in Abhängigkeit des $Trennzeichens
    BSP: $a = 'ab 12 cd'; $b = explore(' ', $a);
    => $b[0] = 'ab' | $b[1] = '12' | $b[2] = 'cd'
    $a = htmlspecialchars($a); Wandelt HTML-Code in Text um
    => Sinnvoll nach Eingaben Text HTML-Aktionen zu schützen

    Datum / Zeit Funktionen

    Basis für alle Datum/Zeit-Berechnungen ist ein Timestamp (Zeitstempel) des Web-Servers seit 01.01.1970 (Sekunden seit Beginn der Unix-Epoche).

    [Blockierte Grafik: https://e2h.de/forum/images/Leer300.png]
    PHP Code

    [Blockierte Grafik: https://e2h.de/forum/images/Leer200.png]

    Bedeutung

    $a = time(); Gibt den Zeitstempel seit 01.01.1970 zurück
    BSP: echo time() . ' Sekunden seit 01.01.1970 <br>';
    echo intval(time() / (60 * 60 * 24)) . ' Tage seit 01.01.1970 <br>';
    $a = date($Format); Gibt das Datum in einem bestimmten Format zurück
    Format: H=Stunde (00-24), i=Minute (00-59), s=Sekunde, d=Tag (01-31), m=Monat (01-12), Y=Jahr (4stellig), h=Stunde (00-12), g=Stunde (0-12), G=Stunde (0-24), U=Sekunden seit Unix-Epoche, u=Mikrosekunden (123456), e=Zeitzone (UTC, GMT, ...), D=Wochentag (3 Zn), w=Wochentg (0=So), W=Wochennr. (Beginn Mo.), y=Jahr (2stellig), z=Anz. Tage des Jahre (1.1.=0)
    $a = mktime($h, $i, $s, $m, $d, $Y); Wandelt eine Zeit-/Datums-Angabe in einen Timestamp
    BSP: $t = mktime(13, 44, 55, 7, 1, 2017); => 01.07.2017 13:44:55

    Mathematische Funktionen

    Basis für alle Datum/Zeit-Berechnungen ist ein Timestamp (Zeitstempel) des Web-Servers seit 01.01.1970 (Sekunden seit Beginn der Unix-Epoche).

    [Blockierte Grafik: https://e2h.de/forum/images/Leer300.png]
    PHP Code

    [Blockierte Grafik: https://e2h.de/forum/images/Leer200.png]

    Bedeutung

    M_PI Pi (3,14)
    $a = max( 1, 2, 3 ); Maximalwert einer Zahlenreihe
    $a = dechex( 255 );
    $a = hexdec( 'ff' );
    Wandelt eine Zahl in einen HEX-Wert
    und umgekehrt
    $a = rand( $min , $max );
    $a = mt_rand( $min , $max );
    Gibt eine Zufallszahl zwischen $min und $max zurück
    mt_rand liefert dabei bessere Zufallszahlen
    $a = round( $b[, $Nachkomma[, $Option]] ); Rundet eine Zahl anhand der Nachkommastellen (Default=0)
    $Option: => PHP_ROUND_HALF_UP Rundet bei .5 auf
    => PHP_ROUND_HALF_DOWN (Defalut) Rundet bei .5 ab
    $a = floor( 5.5 ); Rundet eine Zahl ab (hier 5)
    $a = ceil( 5.5 ); Rundet eine Zahl auf (hier 6)
    $a = abs( -5.5 ); Liefert den Absolutwert (ohne Vorzeichen) einer Zahl (hier 5.5)
    • Offizieller Beitrag

    PHP-Code innerhalb HTML identifizieren

    Damit der Web-Server PHP-Code erkennen kann, muss ein PHP-Code mit PHP-Tags gekennzeichnet werden.

    • <? php
      ?>

    Oder die Short-PHP-Open-Tags (allerdings funktionieren diese nicht zuverlässig)

    • <?
      ?>
    • <%
      %>
    • <?= ?>

    Kommentare in PHP

    • /* ANFANG Kommentare über einen Bereich hinweg
      ENDE */
    • // Ab hier kann ein Kommentar definiert werden
    • /**
      * Kommentare für das PHP Tool PHPDocumentor => diese Zeile wird als Überschrift interpretiert
      *
      * Diese Zeilen werden
      * als Detail-Informationen interpretiert
      *
      * Diese Zeile beschreiben
      * Parameter
      */
    • Offizieller Beitrag

    Operatoren

    Operatoren
    Bedeutung
    ARITHMETISCHE...
    $a + $b
    $a - $b
    $a * $b
    $a / $b
    $a % $b
    $a ** $b
    ...OPERATOREN
    + => Addition => Summe von $a und $b
    - => Subtraktion => Differenz von $a und $b
    * => Multiplikation => Produkt von $a und $b
    / => Division => Quotient von $a und $b
    % => Modulus => Rest von $a geteilt durch $b
    ** => Potenz => $b-te Potenz von $a. (seit PHP 5.6)
    ZUWEISUNGS...
    $a += $b
    $a -= $b
    $a *= $b
    $a /= $b
    $a %= $b
    $a .= $b
    $a &= $b
    $a |= $b
    $a ^= $b
    $a <<= $b
    $a >>= $b
    ...OPERATOREN
    += => Addition => $a = $a + $b
    -= => Subtraktion => $a = $a - $b
    *= => Multiplikation => $a = $a * $b
    /= => Division => $a = $a / $b
    %= => Modulus => $a = $a % $b
    .= => Concatenate => $a = $a . $b => Verbinden
    &= => Bitweise And => $a = $a & $b
    |= => Bitweise Or => $a = $a | $b
    ^| => Bitweise Xor => $a = $a ^ $b
    <<= => Left shift => $a = $a << $b => Bitweises verschieben nach links
    >>= => Right shift => $a = $a >> $b => Bitweises verschieben nach rechts
    BIT...
    $a & $b
    $a | $b
    $a ^ $b
    ~ $a
    $a << $b
    $a >> $b
    ...OPERATOREN
    & => Und => Bits, die in $a und $b gesetzt sind werden gesetzt
    | => Oder => Bits, die in $a oder $b gesetzt sind werden gesetzt
    ^ => Entweder oder (Xor) => Bits, entweder in $a oder $b, jedoch nicht in beiden werden gesetzt
    ~ => Nicht => Bits, die in $a nicht gesetzt sind, werden gesetzt und umgekehrt.
    < => Nach links verschieben => Verschiebung der Bits von $a um $b Stellen nach links
    > => Nach rechts verschieben => Verschiebt die Bits von $a um $b Stellen nach rechts
    VERGLEICHS...
    $a == $b
    $a === $b
    $a != $b
    $a <> $b
    $a !== $b
    $a < $b
    $a > $b
    $a <= $b
    $a >= $b
    ...OPERATOREN TRUE wenn...
    == => Gleich => $a gleich $b
    === => Identisch => $a gleich $b inkl. Typ
    != => Ungleich => $a ungleich $b
    <> => Ungleich => $a ungleich $b
    !== => Nicht identisch => $a nicht gleich $b inkl. Typ
    < => Kleiner Als => $a kleiner $b
    > => Größer Als => $a größer $b
    <= => Kleiner Gleich => $a kleiner oder gleich $b
    >= => Größer Gleich => $a größer oder gleich $
    INKREMENT...
    ++$a
    $a++
    DEKREMENT
    --$a
    $a--
    ...OPERATOREN
    ++ => Prä-Inkrement => Erhöht $a um eins und gibt den neuen Wert zurück
    ++ => Post-Inkrement => Gibt den aktuellen Wert zurück und erhöht dann $a um eins
    ...OPERATOREN
    -- => Prä-Dekrement => Vermindert $a um eins und gibt den neuen Wert zurück
    -- => Post-Dekrement => Gibt den aktuellen zurück und erniedrigt dann $a um eins.
    LORISCHE...
    $a and $b
    $a or $b
    $a xor $b
    ! $a
    $a && $b
    $a | | $b
    ...OPERATOREN TRUE wenn
    AND => Und => $a=TRUE und $b=TRUE
    OR => Oder => $a=TRUE oder $b=TRUE
    XOR Entweder => Oder => entweder $a=TRUE oder $b=TRUE, aber nicht beide
    ! => Nicht => $a=nicht TRUE ist.
    && => Und => sowohl $a=TRUE als auch $b=TRUE
    | | => Oder => $a=TRUE oder $b=TRUE
    • Offizieller Beitrag

    Fallunterschaltungen

    [Blockierte Grafik: https://e2h.de/forum/images/Leer300.png]
    PHP Code
    [Blockierte Grafik: https://e2h.de/forum/images/Leer200.png]
    Bedeutung
    if ($a == 1) {
    [Blockierte Grafik: https://e2h.de/forum/images/Leer20.png]echo 'Ergebnis 1';
    } elseif ($a >= 2 && $a < 5) {
    [Blockierte Grafik: https://e2h.de/forum/images/Leer20.png]echo 'Ergebnis 2';
    } else {
    [Blockierte Grafik: https://e2h.de/forum/images/Leer20.png]echo 'Ergebnis 3';
    }
    Wenn Wert der Variable $a = 1 ist wird "Ergebnis 1" ausgegeben
    Wenn größer/gleich 2 und kleiner 5 wird '"Ergebnis 2" ausgegeben
    Wenn keine der Bedingungen zutreffen dann "Ergebnis 3"
    if ($a == 1) echo 'Ergebnis 1'; Kurzform, wenn nur auf einen Wert abgeprüft werden soll
    $a = 1;
    switch ($a) {
    [Blockierte Grafik: https://e2h.de/forum/images/Leer10.png]case 1:
    [Blockierte Grafik: https://e2h.de/forum/images/Leer20.png]echo 'Fall 1<br>';
    [Blockierte Grafik: https://e2h.de/forum/images/Leer20.png]break;
    [Blockierte Grafik: https://e2h.de/forum/images/Leer10.png]case $a >= 2 && $a < 5:
    [Blockierte Grafik: https://e2h.de/forum/images/Leer20.png]echo 'Falle 2<br>';
    [Blockierte Grafik: https://e2h.de/forum/images/Leer20.png]break;
    [Blockierte Grafik: https://e2h.de/forum/images/Leer10.png]default:
    [Blockierte Grafik: https://e2h.de/forum/images/Leer20.png]echo 'Default<br>';
    [Blockierte Grafik: https://e2h.de/forum/images/Leer20.png]break;
    }
    Über switch-case können wie bei if-else auch Fallunterscheidungen geroffen werden

    Der Vorteil liegt in der schnelleren Ausführung und Übersichtlichkeit

    Wichtig ist der Abschluss eines case-Falls der Befehl break;
    Fehlt dieser, so werden ab dem zutreffen der Bedingung alle folgenden Befehle ausgeführt
    • Offizieller Beitrag

    Schleifen

    [Blockierte Grafik: https://e2h.de/forum/images/Leer300.png]
    PHP Code
    [Blockierte Grafik: https://e2h.de/forum/images/Leer200.png]
    Bedeutung
    for ($i = 1; $i <= 10; $i++) {
    [Blockierte Grafik: https://e2h.de/forum/images/Leer10.png]echo $i . ' Durchlauf<br>';
    }
    Schleife wird so lange durchlaufen wie $i <= 10 ist
    $i = 1;
    while ($i <= 10) {
    [Blockierte Grafik: https://e2h.de/forum/images/Leer10.png]echo $i . ' Durchlauf<br>';
    [Blockierte Grafik: https://e2h.de/forum/images/Leer10.png]$i++;
    }
    Einfache while-Schleife, ähnlich wie die for-Schleife
    $i = 1;
    while ($i <= 10) {
    [Blockierte Grafik: https://e2h.de/forum/images/Leer10.png]if ($i == 5) {
    [Blockierte Grafik: https://e2h.de/forum/images/Leer20.png]echo 'Schleifenwert 5<br>';
    [Blockierte Grafik: https://e2h.de/forum/images/Leer20.png]$i++;
    [Blockierte Grafik: https://e2h.de/forum/images/Leer20.png]continue;
    [Blockierte Grafik: https://e2h.de/forum/images/Leer10.png]}
    [Blockierte Grafik: https://e2h.de/forum/images/Leer10.png]echo $i . ' Durchlauf B<br>';
    [Blockierte Grafik: https://e2h.de/forum/images/Leer10.png]$i++;
    }
    Bei dem Befehl continue wird der restliche Code der Schleife ignoriert und das Programm am Anfang fortgesetzt.

    Damit keine Endlosschleife produziert wird, muss vor continue unbedingt der Schleifenzähler $i weitergezählt werden
    $i = 10;
    do {
    [Blockierte Grafik: https://e2h.de/forum/images/Leer10.png]echo 'do-while $i=' . $i . '<br>';
    } while ($i <= 10);
    In dieser Schleife wird der Schleifen-Code mind. 1x durchlaufen - die Prüfung wird erst am Ende der Schleife ausgeführt
    $arr = array('1', '2', '3');
    foreach ($arr as $a) {
    [Blockierte Grafik: https://e2h.de/forum/images/Leer10.png]echo 'Inhalt ' . $a . ' <br>';
    }
    Arrays (Variablenfelder) können mit foreach durchlaufen werden

    $arr beinhaltet dabei alle Werte und auf $a wird beim Durchlauf immer der nächste übergeben
    • Offizieller Beitrag

    Funktionen

    Sind Unterprogramme die abgeschlossene Aufgaben übernehmen und ein Ergebniss zurückgegeben wird. In älteren PHP-Versionen musst die Funktion immer vor dem Aufruf stehen, heute ist dies nicht mehr der Fall und somit kann sie auch am Ende der PHP-Datei stehen.

    [Blockierte Grafik: https://e2h.de/forum/images/Leer300.png]
    PHP Code

    [Blockierte Grafik: https://e2h.de/forum/images/Leer200.png]
    Bedeutung

    function php_ver_check($version) {
    [Blockierte Grafik: https://e2h.de/forum/images/Leer10.png]if (phpversion() >= $version) {
    [Blockierte Grafik: https://e2h.de/forum/images/Leer20.png]return true;
    [Blockierte Grafik: https://e2h.de/forum/images/Leer10.png]} else {
    [Blockierte Grafik: https://e2h.de/forum/images/Leer20.png]return false;
    [Blockierte Grafik: https://e2h.de/forum/images/Leer10.png]}
    }
    var_dump(php_ver_check(5.1));
    Funtion mit einem Parameter

    In diesem Beispiel wird die Versionsnummer abgeprüft

    var_dump(php_ver_check(5.1)); ruft die Funktion auf
    function addieren() {
    [Blockierte Grafik: https://e2h.de/forum/images/Leer10.png]$param = func_get_args();
    [Blockierte Grafik: https://e2h.de/forum/images/Leer10.png]$sum = 0;
    [Blockierte Grafik: https://e2h.de/forum/images/Leer10.png]foreach ($param as $p) {
    [Blockierte Grafik: https://e2h.de/forum/images/Leer20.png]$sum += $p;
    [Blockierte Grafik: https://e2h.de/forum/images/Leer10.png]}
    [Blockierte Grafik: https://e2h.de/forum/images/Leer10.png]return $sum;
    }
    echo addieren(1, 2, 3);
    Funktion mit mehreren Parametern

    Diese Funktion übergibt mehrere Parameter die als Summe zurück gegeben werden
    function funk_param($param1 = '5', $param2 = 'Haus') {
    [Blockierte Grafik: https://e2h.de/forum/images/Leer10.png]echo $param2 . ' Nr. ' . $param1 . ' - ';
    [Blockierte Grafik: https://e2h.de/forum/images/Leer10.png]return true;
    }
    echo funk_param();
    Funktion mit mehreren Parameteren die Standardwerte erhalten

    Wird ein Parameter nicht übergeben, so wird ein Standardwert angenommen. Wird ein Standardwert definiert so müssen alle Parameter danach auch einen besitzen

    Ausgabe: Haus Nr. 5 - 1
    Dabei wird zuerst die echo-Anweisung in der Funktion und anschliessend der Rückgabeparameter true ausgegeben
    function gueltig($a, &$b) {
    [Blockierte Grafik: https://e2h.de/forum/images/Leer10.png]global $c;
    [Blockierte Grafik: https://e2h.de/forum/images/Leer10.png]$a ++;
    [Blockierte Grafik: https://e2h.de/forum/images/Leer10.png]$b ++;
    [Blockierte Grafik: https://e2h.de/forum/images/Leer10.png]$c ++;
    [Blockierte Grafik: https://e2h.de/forum/images/Leer10.png]echo 'Funktion $a: ' . $a . '<br>';
    [Blockierte Grafik: https://e2h.de/forum/images/Leer10.png]echo 'Funktion $b: ' . $b . '<br>';
    [Blockierte Grafik: https://e2h.de/forum/images/Leer10.png]echo 'Funktion $c: ' . $c . '<br>';
    [Blockierte Grafik: https://e2h.de/forum/images/Leer10.png]return true;
    }
    $a = 10;
    $b = 20;
    $c = 30;
    gueltig($a, $b);
    echo 'Global $a: ' . $a . '<br>';
    echo 'Global $b: ' . $b . '<br>';
    echo 'Global $g: ' . $c . '<br>';
    Variablen in Funktionen

    Variablen in Funktionen sind Lokal, eine Änderung wirkt sich außerhalb der Funktion nicht aus, auch nicht wenn sie Übergeben wurde => $a
    Das kann man Änderen indem man ein & vor die Variable schreibt, dann wird diese als Referenz übergeben und Änderungen bleiben erhalten => $b
    Alternativ kann über die Anweisung global die Variable ebenfalls als Referenz übergeben werden, auch hier bleien die Änderungen erhalten => $c

    Ausgabe:
    Funktion $a: 11
    Funktion $b: 21
    Funktion $c: 31
    Global $a: 10
    Global $b: 21
    Global $c: 31
    func_num_args () Liefert die Anzahl der Parameter => bool
    func_get_arg ( $intParameterNr ) Liefert Aufgrund Parameternummer den Wert => variant
    function_exists ( $stringFunktionsName ) Prüft ob eine Funktion vorhanden ist => bool
    • Offizieller Beitrag

    Externe Dateien

    PHP-Code oder HTML-Code in andere Dateien auslagern. So lassen sich Bibliotheken aufbauen.

    ! Achtung ! Zum Schutz sollten Dateien nur vom eigenen Server verwendet werden. Weiterhin ist es ratsam einen Verzeichnisschutz zu aktivieren, dass von außen nicht zugegriffen werden kann.

    [Blockierte Grafik: https://e2h.de/forum/images/Leer300.png]
    PHP Code
    [Blockierte Grafik: https://e2h.de/forum/images/Leer200.png]
    Bedeutung
    include $Dateiname;
    $err = include( $Dateiname );
    include_once $Dateiname;
    $err = include_once( $Dateiname );
    Bindet eine externe Datei ein und führt diese aus
    Im Fehlerfall wird eine Warnung erzeugt
    include_once bindet die Datei nur ein mal ein
    require $Dateiname
    $err = require( $Dateiname );
    require_once $Dateiname;
    $err = require_once( $Dateiname );
    Bindet eine externe Datei ein und führt diese aus
    Im Fehlerfall wird ein Error (E_COMPILE_ERROR) erzeugt
    require_once bindet die Datei nur ein mal ein
    set_include_path( $NeuerIncludePfad );
    ini_set( 'include_path', $NeuerIncludePfad );
    Gesucht wird die externe Datei im aktuellen Pfad der PHP-Datei und im Include-Verzeichnis.
    Dieses Include-Verzeichnis kann hiermit neu gesetzt werden
    Mit ini_set können auch andere Einstellungen verändert werden
    $a = ini_get( 'include_path' ); Gibt den Include-Pfad aus der Konfiguration (php.ini) zurück
    • Offizieller Beitrag

    Objektorientierte Programmierung (oop)

    Bibliotheken lassen sich in Objekte sehr gut strukturieren. Dabei wird eine Kasse (class) erstellt und Eigenschaften (Beschreibt die Klasse) und Mehoden (dieses kann die Klasse) erstellt.

    [Blockierte Grafik: https://e2h.de/forum/images/Leer400.png]

    PHP Code
    [Blockierte Grafik: https://e2h.de/forum/images/Leer100.png]
    Bedeutung
    class Buch {
    [Blockierte Grafik: https://e2h.de/forum/images/Leer10.png]private $Titel = 'PHP Hilfe';
    [Blockierte Grafik: https://e2h.de/forum/images/Leer10.png]public function Info() {
    [Blockierte Grafik: https://e2h.de/forum/images/Leer20.png]echo 'Info aus Klasse<br>';
    [Blockierte Grafik: https://e2h.de/forum/images/Leer10.png]}
    [Blockierte Grafik: https://e2h.de/forum/images/Leer10.png]public function getTitel() {
    [Blockierte Grafik: https://e2h.de/forum/images/Leer20.png]return this->Titel;
    [Blockierte Grafik: https://e2h.de/forum/images/Leer10.png]}
    [Blockierte Grafik: https://e2h.de/forum/images/Leer10.png]public function setTitel( $text ) {
    [Blockierte Grafik: https://e2h.de/forum/images/Leer20.png]$this->Titel = $text;
    [Blockierte Grafik: https://e2h.de/forum/images/Leer10.png]}
    }
    $phpbuch = new Buch();
    $phpbuch->Info();
    $phpbuch->setTitel( 'PHP' );
    echo $phpbuch->getTitel();
    class Buch => erstellt die Klasse Buch
    private $Titel => definiert eine Klasseninterne Eigenschaft
    public function => definiert verschiedene Methoden

    $phpbuch = new Buch() => erstellt eine Instanz der Klasse
    $phpbuch->Info() => ruft die Methode Info auf
    $phpbuch->setTitel() => ändert den Titel (Variable $Titel)
    $phpbuch->getTitel() => gibt die Eigenschaft Titel über eine Methode aus
    class Krimi extends Buch{
    [Blockierte Grafik: https://e2h.de/forum/images/Leer10.png]public function Info() {
    [Blockierte Grafik: https://e2h.de/forum/images/Leer20.png]echo parent::Methoden();
    [Blockierte Grafik: https://e2h.de/forum/images/Leer10.png]}
    }
    Definiert eine Klasse Krimi mit den Eigenschaften und Methoden der Klasse Buch
    Zusätzlich können weitere Eigenschaften und Methoden angelegt werden. Die Eigenschaften und Methoden aus Buch können verwendet werden wirken sich aber nur in der Klasse Krimi aus

    parent::Info() => Zugriff auf die Methode Info der geerbten Klasse Buch