Anweisungen in und mit PHP

PHP bietet Anweisungen in denen man Bedingungen anlegen kann, diese Bedingungen werden dann in den Anweisungen geprüft ob sie wahr (true) oder nicht wahr (false) sind.

So kannst Du zum Beispiel prüfen, ob für ein bestimmtes Datum ein Ereignis anliegt.

Gehen wir einmal davon aus, dass Du jeden Monat am 20´sten ein Ereignis auslösen möchtest, dann kannst Du folgende Anweisung erstellen:

<?php
$tag_heute = date('d');
$tag_ereignis = "20";
if ($tag_heute < $tag_ereignis)
  { echo "Das Event steht noch nicht an!<br>\n"; }
elseif ($tag_heute > $tag_ereignis)
  { echo "Das Event für diesen Monat ist bereits vorbei!<br>\n"; }
else
  { echo "Heute ist das Event!!!<br>\n"; }
?>

Dieses Script gibt für Heute folgendes aus:
Das Event für diesen Monat ist bereits vorbei!

Die Variable "$tag_heute = date('d');" kennst Du bereits von der vorhergehenden Seite und sie stellt den heutigen Tag als Zahl der Datumsangabe fest.
Die Variable "$tag_ereignis = "20";" stellt den Tag als Zahl zum Vergleichen zur Verfügung, wie ich oben bereits erwähnt habe, gehen wir vom 20´sten des Monats für das Event aus.
Die erste Anweisung (if) mit der Bedingung besagt, dass wenn der heutige Tag kleiner der des Events ist, dann zeige diese Zweig an und es wird dann "Das Event steht noch nicht an!" ausgegeben. Damit wäre der IF-Zweig TRUE - also wahr.
Die zweite Anweisung (elseif) mit der Bedingung, dass wenn der heutige Tag größer ist als der des Ereignisses, dann wird dieser Zweig ausgegeben mit "Das Event für diesen Monat ist bereits vorbei!". Jetzt wäre also der ELSEIF-Zweig TRUE - also wahr.
Sind beide Bedingungen nicht wahr, dann tritt der ELSE-Zweig für FALSE in Kraft und gibt dann "Heute ist das Event!!!" aus. Eigentlich ist das zwar von der Logik her etwas verdreht, denn TRUE müsste doch die 20 sein - aber PHP musst Du manchmal etwas anders denken um Bedingungen und Abfragen nebst Anweisungen aufzubauen.

Natürlich geht das Ganze auch etwas einfacher wenn Du vor und nach dem Event nicht benötigst, denn dann sieht das Script nur noch so aus:
<?php
$tag_heute = date('d');
$tag_ereignis = "20";
if ($tag_heute == $tag_ereignis)
  { echo "Heute ist das Event!!!<br>\n"; }
else
  { echo "Zur Zeit kein Event!!!<br>\n"; }
?>
was für Heute folgendes ausgibt:
Zurzeit kein Event!!!

Du siehst den Unterschied - nur noch IF und ELSE Zweig und in der Bedingung muss der Tag von Heute dem Event-(Ereignis-)tag entsprechen - GLEICH sein.
Sind also beide Tage gleich, dann ist der IF-Zweig True (wahr) und gibt "Heute ist das Event!!!" aus - anderenfalls ist die Bedingung nicht wahr (also FALSE) und der ELSE-Zweig mit "Zur Zeit kein Event!!!" wird ausgegeben.
Diese einfachere Anweisung würde nun unserer Denklogik entsprechen - gibt aber dafür weniger aus.

Falls Du beim Erstellen von Anweisungen nur die Wahrheitsbedingung benötigst (den IF-Zweig), dann kannst Du auch auf den ELSE-Zweig verzichten. Nur der IF-Zweig ist für solche Abfragen/Bedingungen zwingend erforderlich - ohne ihm keine "else" und auch kein "elseif".

Da man mit PHP auch andere Dateien in die Seite laden kann macht es Sinn, nachzuschauen, ob diese Datei vorhanden ist um Fehlermeldungen vorzubeugen.
Sicherlich wirst Du Dich jetzt fragen - Was soll das? Wieso soll die Datei nicht da sein? - Aber manches geht nun mal seltsame Wege im WWW und deshalb sollte man manchmal nachschauen - oder eben mit PHP nachschauen lassen, was nicht so Zeitaufwendig ist.

Und so könnte eine solche Überprüfung aussehen:
<?php
$oeffne_datei = "Pfad_zur_Datei/Dateiname.Dateityp";
if(file_exists($oeffne_datei))
  {
    // --- Link zur Datei anbieten ---
  }
else
  {
    // --- alternative zum Link anbieten ---
  }
?>

Diese Variante kannst Du unter anderem einsetzen, wenn Du externe Links anbietest. Wenn der Pfad zu dieser externen Datei noch vorhanden ist (also die Überprüfung TRUE [wahr] ergab), dann blendest Du den passende Link dazu über diesen Zweig ein.
Wenn diese externe Datei nicht oder nicht mehr existiert, dann ergibt die Abfrage FALSE (nicht wahr) und dieser Zweig mit der Alternativen zum Link tritt in Kraft.

Diese Abfrage kann man natürlich auch für weitere Dinge auf der eigenen Homepage gut einsetzen.

Als nächstes kann man mit PHP über verschiedene Anweisungen Dateien in eine Webseite laden. Die am meisten dazu genutzten Anweisungen sind "include" und "include_once". Der Unterschied dieser beiden Anweisungen ist, dass man mit "include_once" die Datei nur einmal laden kann und mit "include" mehrmals.
Von meiner Warte her ist "include_once" die bessere Variante - denn was will man zweimal mit der gleichen Datei.

Und so würde eine Anweisung dazu aussehen:
<?php
include_once "Pfad_zur_Datei/Dateiname.Dateityp";
// --- oder ---
include_once 'Pfad_zur_Datei/Dateiname.Dateityp';
?>

Wenn diese Datei existiert, dann ist alles OK - wenn nicht, dann bringt PHP eine Fehlermeldung, was Du umgehen solltest.
Dies kannst Du folgender Maßen erledigen:
<?php
@include_once "Pfad_zur_Datei/Dateiname.Dateityp";
?>
Mit dem vorgesetzten "@" schaltest Du die Fehlermeldungen von PHP ab - allerdings auch für die Fehler, die auf der zu ladenden Seite sind, was Dir die Fehlersuche erschweren kann.

Eine andere Variante ist, die "include_once"-Anweisung in eine Variable einzubetten und dann mit "if"-Anweisungen und Bedingungen zu arbeiten.
Und so sieht das Ganze dann aus:
<?php
$include = @include_once "Pfad_zur_Datei/Dateiname.Dateityp";
if($include == TRUE)
  {
    // --- Datei existiert und wurde geladen, also keine weitere Aktion ---
  }
else
  {
    // --- alternative zur Datei anbieten - zum Beispiel eine Fehlermeldung mit HTML-Elementen ---
    echo "<p>Leider ist ein Fehler aufgetreten. .................</p>\n";
  }
?>

Das "@" zur Unterdrückung der Fehlermeldungen von PHP kannst Du trotzdem nicht weglassen - aber dafür eigene Fehlermeldungen über Anweisungen und Bedingungen einrichten.

Wenn Du jetzt allerdings vorher über "file_exists" prüfst, ob diese Datei existiert und die Datei dann erst über "include_once" lädst, dann bekommst Du keine Fehlermeldung und kannst das vorgesetzte "@" weglassen.

<?php
$oeffne_datei = "Pfad_zur_Datei/Dateiname.Dateityp";
if(file_exists($oeffne_datei))
  {
    include_once "$oeffne_datei";
  }
else
  {
    // --- alternative zur Datei anbieten - zum Beispiel eine Fehlermeldung mit HTML-Elementen ---
    echo "<p>Leider ist ein Fehler aufgetreten. .................</p>\n";
  }
?>

Mit den Abfragen (if/elseif/else) kann man sich viele Arbeiten erleichtern, mit etwas Geduld und Probieren lassen sich noch viele nützliche Anweisungen und Bedingungen erstellen.

Ein paar davon findest Du auf den nächsten Seiten oder auch im Handbuch zu PHP.

Auf der nächsten Seite selbst geht es dann um ein paar Funktionen welche ebenfalls sehr nützlich sind.