PHP Kurs Logo  
 
Buttons PHP Kurs - Kapitel Trennlinie Was brauche ich ? Trennlinie Kontakt Trennlinie Impressum & Datenschutz 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 ?

Interessante Artikel


IF Abfragen, auf Ereignisse reagieren

Jetzt haben wir gelernt wie man in Variablen Werte speichert. Jetzt wollen wir nicht nur speichern, sondern auch auf die Ergebnisse reagieren. Um auf ein Ereignis zu reagieren gibt es viele Möglichkeiten. Wir widmen uns jetzt der php if Abfrage.

Beispiel:

<?php
    $a 
10;
    
$b 7;

    if (
$a $b)
        {
        echo 
"$a ist größer als $b.";
        }

    if (
$a $b)
        {
        echo 
"$a ist kleiner als $b.";
        }

    if (
$a != $b)
        {
        echo 
"$a ist nicht genauso groß wie $b.";
        }

    if (
$a == $b)
        {
        echo 
"$a ist genauso groß wie $b.";
        }
?>

Das if erwartet in runden Klammern die Bedingung die Eintreten soll. if bedeutet im deutschen WENN. Als erstes haben wir $a den Wert 10 und $b den Wert 7 gegeben.

Die erste WENN (if) Abfrage:
Wenn $a größer als $b , dann soll er die Befehle ausführen, die in den geschwungenen Klammern danach kommen. Trifft diese Bedingung nicht ein, dann werden die Befehle in den geschwungenen Klammern nicht ausgeführt.

Das zweite WENN (if):
Wenn $a kleiner als $b ist, dann führe die Befehle in den geschwungenen Klammern aus.

Das dritte WENN (if):
Wenn $a ungleich $b ist, dann führe die Befehle in den geschwungenen Klammern aus.

Das vierte WENN (if):
Wenn $a gleich $b ist, dann führe die Befehle in den geschwungenen Klammern aus. Ihr werdet merken, dass dort nicht ein Gleichheitszeichen steht sondern zwei. Ihr werdet euch fragen: "Warum ?". Ganz einfach:

Merke: Wenn ich nur ein Gleichheitszeichen = verwende, dann weise ich der linken Variable den Wert von dem zu, was auf der rechten Seite vom Gleichheitszeichen steht. Ein einfaches Gleichheitszeichen ist also eine Zuweisung. Will ich wissen ob der linke Wert vom Gleichheitszeichen mit dem vom rechten Wert neben dem Gleichheitszeichen identisch ist, dann muss ich zwei == Gleichheitszeichen verwenden. Dies ist eine häufige Fehlerquelle ! Es gibt sogar noch Abfragen mit drei Gleichheitszeichen. Das solltet Ihr schonmal gehört haben, muss euch am Anfang aber nicht interessieren.

Schreibe ich zum Beispiel:

<?php
    
if ($a $b)
        {
        echo 
"Test";
        }
?>

... dann prüfe ich in der WENN Bedingung nicht, ob die Werte identisch sind. In diesem Fall enthält $a hinterher das selbe wie $b und IF überprüft nur ob diese Zuweisung geklappt hat. Natürlich hat es klappt. In $a ist nun dasselbe gespeichert wie in $b, also hat es geklappt und IF führt die Befehle in den geschwungenen Klammern aus, auch wenn $a vorher 10 war und $b zum Beispiel 7 war ! 10 ist nicht genauso groß wie 7 , aber genau das haben wir ja nicht abgefragt sondern nur aus der gespeicherten 10 (in $a) eine 7 (gespeichert in $b) gemacht ! Solche "dummen" Fehler können passieren und eine regelrechte Suchaktion auslösen. Dies kann nämlich der Beginn einer Kettenreaktion sein, wenn wir selber in $a und $b andere Werte erwarten, diese aber mittlerweile anders sind und in späteren Programmteilen weiterverarbeitet werden und "natürlich" nicht das erwartete liefern.

WENN $a == $b DANN { } ANDERNFALLS MACHE { }

Manchmal will man etwas vergleichen und darauf AUCH reagieren wenn die Bedingung NICHT zutrifft. Wir könnten zum Beispiel fragen WENN $a == $b dann mache das was in den geschwungenen Klammern steht. WENN dies aber NICHT zutrifft dann mache was anderes. Dies schafft man mit else.

Beispiel:

<?php
    $a 
2;
    
$b 5;

    if (
$a $b)
        {
        echo 
"$a ist größer als $b.";
        }
    else
        {
        echo 
"$a ist nicht größer als $b.";
        }
?>

Wir fragen PHP ob $a größer als $b ist. Dies ist in diesem Fall nicht so, also wird der Code in den ersten geschwungenen Klammern NICHT ausgeführt. Dann kommt else, was dem PHP Programm sagt dass wenn dies nicht zutrifft, dann führe das aus was JETZT in den geschwungenen Klammern kommt.

Eine Anmerkung zur Lesbarkeit von PHP Code

Man muss PHP Befehle nicht zwangsweise pro Zeile nur einmal schreiben. Man könnte in einer einzigen Zeile auch mehrere PHP Befehle schreiben.

Beispiel:

<?php
    $a 
10$b 7$ergebnis $a $b;
?>

Dieses Beispiel würde funktionieren. Wir haben nach jedem PHP Befehl brav ein Semikolon gesetzt. Es trägt aber nicht unbedingt später zur Lesbarkeit eines großen Programms bei. Genauso wie die PHP Befehle kann man auch bei if() Anweisungen direkt nach den runden Klammern mit der geschwungenen Klammer anfangen. Viele Programmierer machen das und einige PHP Programmierprogramme machen dies automatisch. Die Zeilen werden zwar weniger, aber ich persönlich finde es überhaupt nicht leserlich. Gerade wenn plötzlich viele if() Bedingungen verschachtelt werden, sollte man den Code der zusammengehört in einer horizontalen Höhe schreiben.

Unleserliches Beispiel:

<?php
    
if ($a == $b){
    if (
$c $d){
    if (
$e != $f){
    echo 
"Ausgabe 1";
    
$x $y $z;
    }
    }
    else
    {
    echo 
"Ausgabe 2";
    
$x $y $t;
    }
    echo 
"Ausgabe 3";
    }
?>


Leserliches Beispiel (macht genau das gleiche):

<?php
    
if ($a == $b)
        {
        if (
$c $d)
            {
            if (
$e != $f)
                {
                echo 
"Ausgabe 1";
                
$x $y $z;
                }
            }
        else
            {
            echo 
"Ausgabe 2";
            
$x $y $t;
            }

        echo 
"Ausgabe 3";
        }
?>


Entscheidet selbst - wo würdet Ihr eher sehen, was zu welcher geschwungenen if() Anweisung gehört. Welcher Programmteil gehört zu welcher WENN Bedingung ? Ich glaube es ist klar worauf ich hinaus will. Jeder hat hier seinen eigenen Stil, aber man sollte sich schon Gedanken darüber machen auch seinen Code klar zu strukturieren.





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






Content
 
  Bottom Design  

PepperTools.de Software Download | Software Shop
PepperTools Software Shop