PHP
 ... [ Seminar Linux, WWW, Java und Internet ]
 ... [ Thema LAMP ]
 ... [ Anwendung von Lamp ] ...
Übersicht: PHP
PHP in HTML
Damit der HTML-Modus verlassen und der PHP-Code ausgeführt werden
kann, müssen die PHP-Anweisungen durch bestimmte Tags eingefasst werden:
<? print("Hello World"); ?>
<?php print("Hello World"); ?>
<script language="php"> 
print("Hello World");
</script>
Ausserdem könen optional ASP-Tags benutzt werden:
-  <% print("Hello World"); %>
 
An diesen Beispielen kann man auch schon die Ähnlichkeit zu C erkennen.
Syntax
Ähnlichkeiten von Ausdrücken mit C:
- Bedingungen
- IF
if ($a > $b) {
    print "a is bigger than b";
} elseif ($a == $b) {
    print "a is equal to b";
} else {
    print "a is smaller than b";
}
 - SWITCH
switch ($i) {
    case 0:
        print "i equals 0";
        break;
    case 1:
        print "i equals 1";
        break;
    case 2:
        print "i equals 2";
        break;
    default:
        print "i is not equal to 0, 1 or 2";
}
 
 - Schleifen
- WHILE
$i=1;
while ($i<=10) {
    print $i++;
}
 - DO..WHILE
$i = 0;
do {
    print $i;
} while ($i>0);
 - FOR
for ($i=1; $i<=10; $i++) {
    print $i;
}
 
 - Typcasting
$foo = 10;   // $foo ist ein Integerwert
$bar = (double) $foo;   // $bar ist ein Doublewert
 - Boolsche Werte
$foo = true;
 - Funktionen
  1:  
  2:  <h3>Beispiel: PHP-Funktionen</h3>
  3:  
  4:  <?
  5:  function implizit() {
  6:      print("<p>Implizit.");
  7:  }
  8:  
  9:  function explizit() {
 10:      print("<p>Explizit.");
 11:  }
 12:  
 13:  function funktion($call="implizit") {
 14:      $call();
 15:  }
 16:  
 17:  funktion();
 18:  
 19:  funktion("explizit");
 20:  ?>
 
Folgende Eigenschaften von PHP unterscheiden sich von C:
- Variablen:
müssen in PHP nicht deklarieren werden.
Es gibt zwei Arten von Variablen:
- einfache Variablen:
$count = 5;// Integer-Variable
$name = "count";// String-Variable
printf("Zählerstand von %s: %d \n", $name, $count); // Benutzung von Variablen
 - Variable Variablen:
sind Variablen, deren Inhalt als Variablenname interpretiert wird.
Dadurch kann indirekt auf den Inhalt einer Variable zugegriffen werden.
printf("Zählerstand: %d \n", $$name);
 
Statische Variablen werden durch das Schlüsselwort static
deklariert. Globale Variablen werden innerhalb von Funktionen durch
folgenden Ausdruck sichtbar gemacht:global $a;
 - Datentypen
In PHP gibt es folgende Datentypen:
- Integer
 - Float
 - String
 - Array
Arrays können sowohl indiziert als auch assoziativ (Hashtable)
sein. Der Array besitzt dabei einen internen Zeiger auf ein aktuelles
Element. Dieser Zeiger kann über diverse PHP-Funktionen
manipuliert werden.
$feld = array("banane" => "gelb", "blau", "erdbeere" => "rot", "lila");
Der Zugriff auf einen Array erfolgt durch:
while(list($key, $val) = each($feld)) {
echo("$key => $val<br>");
}
 - Object
Ein Beispiel für Vererbung und Instanziierung von Objekten:
  1:  
  2:  <h3>Beispiel: PHP-Objekte</h3>
  3:  
  4:  <?
  5:  class a {
  6:     var $text = "Huhu!";
  7:     function out(){
  8:              printf("Class A: %s<br>\n",$this->text);   
  9:     }
 10:  }
 11:  
 12:  class b extends a {
 13:     function out(){
 14:         printf("Class B: %s<br>\n",$this->text);        
 15:     }
 16:  }
 17:  
 18:  $obj = new a;
 19:  $obj->out();
 20:  
 21:  $obj = new b;
 22:  $obj->text = "Hallo!";
 23:  $obj->out();
 24:  ?>
 
 - Fehlerbehandlung:
durch ein @ vor einem Funktionsaufruf wird die
Fehlermeldung unterdrückt.
 Die Fehlermeldung kann danach aus
der globalen Variable $php_errormsg gelesen werden.
 - Parameter und Umgebungsvariablen
Umgebungsvariablen existieren automatisch als globale Variablen
innerhalb des Scripts:
print($SCRIPT_NAME);// Ausgabe des Dateinamens
print($HTTP_HOST);  // Ausgabe des Client-Namen
print($REMOTE_ADDR);// Ausgabe der Client-Adresse
Gleiches gilt für Eingabefelder eines empfangenen
HTML-Formulars und für Cookies.
Die Reihenfolge in der die Werte in PHP-Variablen übernommen
werden ist GET, POST und dann Cookies.
 
PHP - Kommandos
PHP bietet eine Vielzahl von internen Hilfsfunktionen. Unter anderem:
- Funktionen zur Datenbankanbindung für verschiedene Datenbanken:
Oracle, Adabas D, Sybase, FilePro, mSQL 1.x and 2.x, Velocis,
MySQL, Solid, dBase, Unix dbm, PostgreSQL
und alle Datenbank-Systeme mit ODBC-Interface
 - zur String-Verarbeitung; speziell zur Suche nach 
regulären Ausdrücken
 - zum Datei- und Verzeichniszugriff
 - zur Netzwerkanbindung, u.a. über LDAP und SNMP
 - HTTP spezifische Funktionen: z.B. zum Setzen von Cookies und Headern
 - Funktionen zur Zeit- und Datumsverarbeitung
 
Zusätzlich existieren Bibliotheken von anderen Entwicklern, 
wie z.B. die "PHP-BaseLib". Diese stellt verschiedene zusätzliche 
Funktionalitäten zur Verfügung:
- Cookie-basiertes Session-Management
 - Authentifizierungsverwaltung
 - Warenkorb-Klasse
 - HTML-Widget's, d.h., "Vorgefertigter HTML-Code" für Tabellen,
Graphen, SQL-Abfragen usw.
 
Von anderen Entwicklern ist selbst ein vorgefertigtes Gästebuch 
unter dem Namen "myGuestbook" verfügbar.
Hilfen
-  Zur Unterstützung des Programmierers ist eine komplette 
Kommandoreferenz auf der PHP-Homepage verfügbar. Neben einer
Suchfunktion ist es auch möglich eigene Kommentare zu den
Funktionen zu schreiben.
 -  Ausserdem gibt es diverse Internet-Seiten mit Beispielprogrammen
und hilfreichen Artikeln: z.B. die PHPBuilder-Site
 
 ... [ Seminar Linux, WWW, Java und Internet]
 ... [ Thema LAMP ]
 ... [ PHP ]
 ... [ Anwendung von Lamp ] ...