PHP-If-Abfrage

PHP-Tutorial Inhalt »

If – Else

if() ist keine Funktion, wie z.B. date(), obwohl die Schreibweisen mit den beiden runden Klammern sehr ähnlich sind.

Bei if() handelt es sich um eine in PHP ständig vorhandene Programmstruktur.

Die If-Abfrage wird nur dann ausgeführt, wenn eine Bedingung erfüllt ist, z.B.:

"Erst wenn du die Arbeit erledigt hast, darfst du Pause machen! Sonst darfst du keine Pause machen!"

Wenn (Arbeit erledigt) {

Pause;

}

sonst {

keine Pause;

}

Die geschweiften Klammern fassen einen Block zusammen.

Der erste Block (rot markiert):

Wenn (Arbeit erledigt) {

Pause;

}

sonst {

keine Pause;

}

Der zweite Block (rot markiert):

Wenn (Arbeit erledigt) {

Pause;

}

sonst {

keine Pause;

}

Dieses Beispiel besteht aus 6 Zeilen und nur 2 Zeilen enden mit einem Semikolon, obwohl in PHP doch eigentlich jede Zeile mit einem Semikolon enden sollte...

Zeile 1: Wenn (Arbeit erledigt) {

Zeile 2: Pause;

Zeile 3: }

Zeile 4: sonst {

Zeile 5: keine Pause;

Zeile 6: }

...die Klammern ersetzen hier jedoch das Semikolon!

Allgemein geschrieben sieht die If-Abfrage dann so aus:

if (Bedingung) {

Fall A;

}

else {

Fall B;

}

In unserem ersten einfachen Beispiel...

"Erst wenn du die Arbeit erledigt hast, darfst du Pause machen!

Sonst darfst du keine Pause machen!"

...ist der zweite Satz eigentlich überflüssig.

Es würde völlig ausreichen, zu sagen...

"Erst wenn du die Arbeit erledigt hast, darfst du Pause machen!"

In der If-Abfrage könnte also einfach der gesamte else-Zweig weggelassen werden, sodass nur noch folgendes übrig bleibt:

Wenn (Arbeit erledigt) {

Pause;

}

In diesem einfachen Beispiel genügt es, die Bedingung zu prüfen.

...oder allgemein geschrieben:

if (Bedingung) {

Fall A;

}

In vielen Fällen wird der else-Zweig jedoch benötigt, z.B. wenn auf der Webseite, je nach aktueller Tageszeit, ein unterschiedlicher Text erscheinen soll, nachdem sie vom Nutzer aufgerufen wird.

Der folgende PHP-Abschnitt...

<?php

if (date("H")==12) {

echo "Mahlzeit!";

}

else {

echo "Hallo!";

}

?>

...bewirkt, dass auf der Webseite nur in der Zeit zwischen 12:00 – 13:00 Uhr der Text "Mahlzeit!" und zu allen anderen Tageszeiten der Text "Hallo!" erscheint.

Genauer gesagt erscheint der Text "Mahlzeit!" nur zwischen 12:00 – 12:59 Uhr. Sobald es Punkt 13:00 Uhr ist, erscheint bereits der andere Text "Hallo!".

Dies wird durch die Datums-Funktion date() und das doppelte Gleichheitszeichen (==) ermöglicht.

Mit Hilfe von...

<?php

echo date("Y");

?>

...wird z.B. die jeweils die aktuelle Jahreszahl ausgegeben.

Mit Hilfe von...

<?php

echo date("H");

?>

...wird die jeweils die aktuelle Stunde ausgegeben, d.h., wenn es 9:00 Uhr ist, dann wird 9 ausgegeben und wenn es z.B. 9:20 Uhr oder 9:43 Uhr ist, dann wird auch nur 9 ausgegeben, denn durch date("H") wird ja immer nur die jeweils aktuelle Stunde ausgegeben und nicht die Minuten.

In unserem Beispiel wird die Datums-Funktion date() nun in die Bedingung der If-Abfrage eingefügt.

Statt allgemein...

if (Bedingung) {

Fall A;

}

...heißt es in unserem Beispiel:

if (date("H")==12) {

echo "Mahlzeit!";

}

...wobei ==12 einfach nur bedeutet, dass überprüft werden soll, ob die Zahl, die durch date("H") ausgegeben wird, also die jeweils aktuelle Stunde, mit der Zahl 12 identisch ist.

Wenn ja, dann gilt Fall A, also der Text "Mahlzeit!", der durch echo ausgegeben wird, sonst gilt Fall B, also der Text "Hallo!", der auch durch echo ausgegeben wird.

Beispiel:

  • Wenn es 10:52 Uhr ist, dann gibt date("H") die Zahl 10 aus und es wird überprüft, ob die Zahl 10 mit der Zahl 12 identisch ist, also 10==12? Da 10 natürlich nicht dasselbe ist, wie 12, gilt Fall B, also der Text "Hallo!", der durch echo ausgegeben wird.
  • Wenn es 12:17 Uhr ist, dann gibt date("H") die Zahl 12 aus und es wird überprüft, ob die Zahl 12 mit der Zahl 12 identisch ist, also 12==12? Da 12 natürlich dasselbe ist, wie 12, gilt Fall A, also der Text "Mahlzeit!", der durch echo ausgegeben wird.

Warum nimmt man eigentlich ein doppeltes Gleichheitszeichen (==) und kein einfaches (=)?

Das einfache Gleichheitszeichen wird bereits für andere Zwecke verwendet und zwar für Variablen, bei denen es als Zuweisungsoperator bezeichnet wird.

Das doppelte Gleichheitszeichen (==) ist ein Vergleichsoperator.

Der Vergleichsoperator darf nicht verwechselt werden mit dem Zuweisungsoperator für Variablen, also dem einfachen Gleichheitszeichen (=).

Weitere Vergleichsoperatoren sind:

!=  für Ungleich

>   für Größer als

<   für kleiner als

>= für größer gleich

<= für kleiner gleich

« PHP-Datums-Funktion

PHP – Verknüpfungen »


 

Galerien / Präsentationen...

city001-sidebar

link-icon002 Galerien-Übersicht...

Kategorien

Alle Artikel

(Inhaltsverzeichnis)

link-icon002 alphabetisch geordnet...

link-icon002 nach Datum geordnet...

soziale Netzwerke...

"Cogniclip" ist auch auf folgenden sozialen Netzwerken vertreten:

Cogniclip auf Twitter Cogniclip auf Google+
 

Per RSS Beiträge abonnieren:

RSS-Feed von Cogniclip
 

Kalender

Dezember 2017
M D M D F S S
 123
45678910
11121314151617
18192021222324
25262728293031
« Feb