30
Faculty of Computer Science Einführung in PHP 5 Einführung in PHP 5

Faculty of Computer Science Einführung in PHP 5. Allgemeines Allgemeines zu PHP –steht für PHP Hypertext Preprocessor –ist eine Skriptsprache –wird eingebettet

Embed Size (px)

Citation preview

Page 1: Faculty of Computer Science Einführung in PHP 5. Allgemeines Allgemeines zu PHP –steht für PHP Hypertext Preprocessor –ist eine Skriptsprache –wird eingebettet

Facu

lty o

f C

om

pu

ter

Scie

nce

Einführung in PHP 5Einführung in PHP 5Einführung in PHP 5Einführung in PHP 5

Page 2: Faculty of Computer Science Einführung in PHP 5. Allgemeines Allgemeines zu PHP –steht für PHP Hypertext Preprocessor –ist eine Skriptsprache –wird eingebettet

AllgemeinesAllgemeines

Allgemeines zu PHPAllgemeines zu PHP– steht für PHP Hypertext Preprocessor– ist eine Skriptsprache– wird eingebettet in HTML– wird serverseitig verarbeitet– wird seit 1994 entwickelt, ist sehr beliebt– ist angelehnt an C, Java, und Perl– besitzt APIs zu sehr vielen DBS

PHP ist verfügt über umfangreiche Dokumentation:PHP ist verfügt über umfangreiche Dokumentation:– Homepage: http://www.php.net oder http://at.php.net– Handbuch: http://at.php.net/manual

Relevant für diese Folien: Relevant für diese Folien: PHP 5PHP 5

Page 3: Faculty of Computer Science Einführung in PHP 5. Allgemeines Allgemeines zu PHP –steht für PHP Hypertext Preprocessor –ist eine Skriptsprache –wird eingebettet

PHP-CodePHP-Code

4 verschiedene Möglichkeiten zur Einbettung in HTML (abhängig von 4 verschiedene Möglichkeiten zur Einbettung in HTML (abhängig von der PHP-Konfiguration)der PHP-Konfiguration)<? … ?> <?php … ?> <script language="php"> … </script> <% … %>

Kommentare innerhalb von PHP-CodeKommentare innerhalb von PHP-Code<?

# einzeiliger Kommentar

// ebenfalls einzeiliger Kommentar

/* mehrzeiliger Kommentar */

?>

Jede PHP-Anweisung muss mit Strichpunkt abgeschlossen werden!Jede PHP-Anweisung muss mit Strichpunkt abgeschlossen werden!<? echo "Hallo"; ?>

Page 4: Faculty of Computer Science Einführung in PHP 5. Allgemeines Allgemeines zu PHP –steht für PHP Hypertext Preprocessor –ist eine Skriptsprache –wird eingebettet

TextausgabeTextausgabeTextausgabe mit Textausgabe mit printprint oder oder echoecho

<? print "Hallo"; # Hallo ausgeben # echo macht das gleiche wie print echo "Hallo";

# mehrzeilige Ausgabe print "Erste und zweite Zeile";

# das gleiche erreicht man mit print "Erste und\nzweite Zeile";

# beachte den Unterschied zum HTML-Zeilenumbruch print "Erste und<BR>zweite Zeile";

/* Anführungszeichen kann man auch verwenden, muss sie aber mit Backslash maskieren */print "Michi sagte \"Hallo\".";

?>

Page 5: Faculty of Computer Science Einführung in PHP 5. Allgemeines Allgemeines zu PHP –steht für PHP Hypertext Preprocessor –ist eine Skriptsprache –wird eingebettet

VariablenVariablen

in PHP beginnen Variable mit einem Dollarzeichen (in PHP beginnen Variable mit einem Dollarzeichen ($$), gefolgt vom ), gefolgt vom Namen der Variablen. Namen der Variablen.

Name muss entweder mit Buchstaben oder Underscore (Name muss entweder mit Buchstaben oder Underscore (__) beginnen!) beginnen!

<? # Deklaration und Initialisierung $var1 = "Web"; $var2 = "Engineering";

# Ausgabe print $var1; # Web

# Verkettung mit Punkt (.) print $var1 . " " . $var2; # Web Engineering

# alternativ auch innerhalb der print-Anweisung print "$var2 im $var1"; # Engineering im Web

/* soll die Ausgabe "as is" erfolgen, dann muss einfaches Hochkomma verwendet werden */

print '$var1 ist eine Variable'; # $var1 ist eine Variable?>

Page 6: Faculty of Computer Science Einführung in PHP 5. Allgemeines Allgemeines zu PHP –steht für PHP Hypertext Preprocessor –ist eine Skriptsprache –wird eingebettet

VariablenVariablen

Es gibt verschiedene Typen von VariablenEs gibt verschiedene Typen von Variablen– Skalare Typen

• String <? $s = "Hallo"; ?>

• Integer <? $i = 4711; ?>

• Float <? $f1 = -47.11; $f2 = 0.3; ?>

• Boolean <? $b = TRUE; $b = FALSE; ?>

– Zusammengesetzte Typen• Arrays• Objekte

Page 7: Faculty of Computer Science Einführung in PHP 5. Allgemeines Allgemeines zu PHP –steht für PHP Hypertext Preprocessor –ist eine Skriptsprache –wird eingebettet

ArraysArrays

Arrays bestehen aus mehreren indizierten Elementen. "Normale" Arrays bestehen aus mehreren indizierten Elementen. "Normale" Arrays haben einen numerischen Index beginnend bei Null.Arrays haben einen numerischen Index beginnend bei Null.

<? $arr = array(); # Initialisierung leer $arr = array(47, 11); # ... mit Vorbelegung

$arr[] = 10; # anhängen mit automatischem Index $arr[3] = "hallo"; # hallo an Index 3 einfügen

# Ausgabe eines Arrays mit print_r() print_r($arr);?>

Ergibt: Array ( [0] => 47 [1] => 11 [2] => 10 [3] => hallo )

Page 8: Faculty of Computer Science Einführung in PHP 5. Allgemeines Allgemeines zu PHP –steht für PHP Hypertext Preprocessor –ist eine Skriptsprache –wird eingebettet

ArraysArrays

Assoziative Arrays verwenden String- oder Integer-Indices, um beliebige Werte Assoziative Arrays verwenden String- oder Integer-Indices, um beliebige Werte zu referenzieren:zu referenzieren:

<? # Initialisierung $star = array( "Vorname" => "Clint", "Nachname" => "Eastwood", "Alter" => 74);

# formattierte Ausgabe: echo $star["Vorname"] . " " . $star["Nachname"] . " ist " . $star["Alter"] . " Jahre alt.";?>

Ergibt: Clint Eastwood ist 74 Jahre alt.

Alternative Ausgabe: echo "{$star['Vorname']} {$star['Nachname']} ist

{$star['Alter']} Jahre alt.";

Page 9: Faculty of Computer Science Einführung in PHP 5. Allgemeines Allgemeines zu PHP –steht für PHP Hypertext Preprocessor –ist eine Skriptsprache –wird eingebettet

Vordefinierte VariablenVordefinierte Variablen

In PHP sind einige Variablen vordefiniertIn PHP sind einige Variablen vordefiniert$PHP_SELF: Name des aktuellen Scripts$_POST: Alle Variablen, die über ein Formular geliefert werden (s.

später)$_GET: Variablen, die über die URL geliefert werden, z.B. Aufruf

von:http://www.xyz.com/test.php?x=10&y=Halloprint_r($_GET) liefert: Array ( [x] => 10 [y] => Hallo )

$_COOKIES: Cookie-Variablen$_SERVER: Server-Variablen, z.B. URL des Client$_SESSION:

Hinweis: Alle vordefinierten Variablen können angezeigt werden mit <? phpinfo(); ?>

Page 10: Faculty of Computer Science Einführung in PHP 5. Allgemeines Allgemeines zu PHP –steht für PHP Hypertext Preprocessor –ist eine Skriptsprache –wird eingebettet

OperatorenOperatorenArithmetische OperatorenArithmetische Operatoren

<? $a = 10; $b = 3;

$a + $b; # Addition (13) $a - $b; # Subtraktion (7) $a * $b; # Multiplikation (30) $a / $b; # Division (3.33333) $a % $b; # Rest ermitteln (1)

# Erhöhen um 1 $a++; # Post-Inkrement (NACH Auswertung der Anweisung) ++$a; # Prä-Inkrement (VOR Auswertung der Anweisung)

# Verringern um 1 $a--; # Post-Dekrement (NACH Auswertung der Anweisung) --$a; # Prä-Dekrement (VOR Auswertung der Anweisung)?>

Page 11: Faculty of Computer Science Einführung in PHP 5. Allgemeines Allgemeines zu PHP –steht für PHP Hypertext Preprocessor –ist eine Skriptsprache –wird eingebettet

OperatorenOperatoren

Logische OperatorenLogische Operatoren

<?<?

# logisches UND# logisches UND

$a $a andand $b; $a $b; $a &&&& $b; $b;

# logisches ODER# logisches ODER

$a $a oror $b; $a $b; $a |||| $b; $b;

# exklusives ODER# exklusives ODER

$a $a xorxor $b; $b;

# Negation# Negation

!!$a;$a;

?>?>

VergleichsoperatorenVergleichsoperatoren

<?<? $a $a ==== $b; # gleich? $b; # gleich? $a $a ====== $b; # ident? $b; # ident? $a $a !=!= $b; # ungleich? $b; # ungleich? $a $a <><> $b; # ungleich? $b; # ungleich? $a $a !==!== $b; # unident? $b; # unident? $a $a << $b; # kleiner? $b; # kleiner? $a $a >> $b; # grösser? $b; # grösser?

# kleiner oder gleich?# kleiner oder gleich? $a $a <=<= $b; $b; # grösser oder gleich?# grösser oder gleich? $a $a >=>= $b; $b;?>?>

Page 12: Faculty of Computer Science Einführung in PHP 5. Allgemeines Allgemeines zu PHP –steht für PHP Hypertext Preprocessor –ist eine Skriptsprache –wird eingebettet

OperatorenOperatoren ZuweisungsoperatorenZuweisungsoperatoren

<? $a = $b; # weist den Wert von $b auf $a zu # Kombination mit arithmetischen Operatoren: $a += $b; # entspricht $a = $a + $b

# analog für andere arithmet. Operatoren: $a /= $b; $a *= $b; $a %= $b;?>

Es gibt noch viele weitere Operatoren, zu finden unter:Es gibt noch viele weitere Operatoren, zu finden unter:http://at.php.net/manual/de/language.operators.php

Page 13: Faculty of Computer Science Einführung in PHP 5. Allgemeines Allgemeines zu PHP –steht für PHP Hypertext Preprocessor –ist eine Skriptsprache –wird eingebettet

KontrollstrukturenKontrollstrukturen

Konstrollstrukturen sind wichtige Elemente einer Konstrollstrukturen sind wichtige Elemente einer Programmiersprache, da sie dynamische und variable Programmiersprache, da sie dynamische und variable Abläufe ermöglichenAbläufe ermöglichen

PHP kennt u.a. folgende Kontrollstrukturen:PHP kennt u.a. folgende Kontrollstrukturen:– if, elseif, else– while, do– for, foreach– break, continue– switch– include

Page 14: Faculty of Computer Science Einführung in PHP 5. Allgemeines Allgemeines zu PHP –steht für PHP Hypertext Preprocessor –ist eine Skriptsprache –wird eingebettet

if, elseif, elseif, elseif, else if, elseif, else werden für Abfrageverzweigungen verwendetif, elseif, else werden für Abfrageverzweigungen verwendet if und elseif evaluieren beliebige nicht-leere Ausdrücke zu if und elseif evaluieren beliebige nicht-leere Ausdrücke zu TRUETRUE oder oder FALSEFALSE

<?<? $a = 10;

if ($a >= 0 && $a < 10) { /* wenn $a gleich 8 oder gleich 9, wird dieser

Block ausgeführt */ } elseif ($a == "Text") { /* dieser Block wird ausgeführt, wenn $a grösser

oder gleich 11. Nach der Prüfung wird $a inkrementiert */

} else { /* dieser Block, falls alle die anderen Bedingungen

nicht erfüllt sind */ }?>

Page 15: Faculty of Computer Science Einführung in PHP 5. Allgemeines Allgemeines zu PHP –steht für PHP Hypertext Preprocessor –ist eine Skriptsprache –wird eingebettet

switchswitch wenn eine Variable auf mehrere Werte geprüft wird, so empfiehlt sich ein wenn eine Variable auf mehrere Werte geprüft wird, so empfiehlt sich ein

switch-Statementswitch-Statement<?<? $a = 10;

switch ($a) { case "Text": echo '$a ist Text'; break; case 10: echo '$a ist 10'; break; default: echo 'keines von beiden'; break; }?>

casecase: Prüfwert: Prüfwert breakbreak: Tritt aus dem switch-Block aus: Tritt aus dem switch-Block aus defaultdefault: Anweisung(en), die ausgeführt werden, falls kein : Anweisung(en), die ausgeführt werden, falls kein case case zutrifft.zutrifft.

Page 16: Faculty of Computer Science Einführung in PHP 5. Allgemeines Allgemeines zu PHP –steht für PHP Hypertext Preprocessor –ist eine Skriptsprache –wird eingebettet

while, dowhile, do while-Schleifen werden solange durchlaufen, bis der Kontrollausdruck zu while-Schleifen werden solange durchlaufen, bis der Kontrollausdruck zu FALSEFALSE

evaluiertevaluiert<? $a = 0;

while ($a < 10) { echo "Heute ist es sehr heiss!"; $a++; } ?> Gibt 10 mal den Text aus

<? # do..while Variante $a = 0; do { echo "Hoffentlich ist es morgen nicht so heiss!"; $a++; } while ($a < 10); ?> Gibt ebenfalls 10 mal den Text aus

Page 17: Faculty of Computer Science Einführung in PHP 5. Allgemeines Allgemeines zu PHP –steht für PHP Hypertext Preprocessor –ist eine Skriptsprache –wird eingebettet

forfor

for-Schleifen sind etwas komplexer, da sie 3 for-Schleifen sind etwas komplexer, da sie 3 (optionale) Ausdrücke beinhalten:(optionale) Ausdrücke beinhalten:

<? for ($i=0; $i<10; $i++) { echo "$i<br>"; }?>

Initialisierung: wird bei Schleifeneintritt einmalig

ausgeführt

Kontrollbedingung: Schleife bricht ab, wenn diese Bedingung

zu FALSE evaluiert

Anweisung, die am Ende jedes Durchlaufs

ausgeführt wird

Page 18: Faculty of Computer Science Einführung in PHP 5. Allgemeines Allgemeines zu PHP –steht für PHP Hypertext Preprocessor –ist eine Skriptsprache –wird eingebettet

foreachforeach foreach ist ein Konstrukt zum bequemen Durchlaufen von foreach ist ein Konstrukt zum bequemen Durchlaufen von

ArraysArrays<? $arr = array("a", "b", "c"); # nur die Werte auslesen foreach ($arr as $v) { echo $v; }

# Schlüssel und Werte auslesen foreach ($arr as $k => $v) { echo "Schlüssel $k hat Wert $v"; }?>

Page 19: Faculty of Computer Science Einführung in PHP 5. Allgemeines Allgemeines zu PHP –steht für PHP Hypertext Preprocessor –ist eine Skriptsprache –wird eingebettet

WeitereWeitere

In Schleifen kann man die Abarbeitung beinflussen:In Schleifen kann man die Abarbeitung beinflussen:break: Veranlasst den sofortigen Austritt aus der Schleifecontinue: erzwingt sofort den nächsten Durchlauf, ohne die restlichen

Statements der Schleife auszuführen.

Um andere Dateien einzubinden:Um andere Dateien einzubinden:<? include "andere.php"; include "http://www.google.at";?>

Der Code einer eingebundenen Datei wird an die Stelle des include-Der Code einer eingebundenen Datei wird an die Stelle des include-Statements gesetztStatements gesetzt

Page 20: Faculty of Computer Science Einführung in PHP 5. Allgemeines Allgemeines zu PHP –steht für PHP Hypertext Preprocessor –ist eine Skriptsprache –wird eingebettet

FunktionenFunktionenHäufig benutzte Anweisungssequenzen kann man in eine Funktion Häufig benutzte Anweisungssequenzen kann man in eine Funktion verpacken:verpacken:<? # berechne die Anzahl der Sekunden von $tage Tagen function errechneSekunden ($tage) { $sekunden = $tage * 24 * 60 * 60; return $sekunden; }

$t = 5; $s = errechneSekunden($t); echo "$t Tage haben $s Sekunden";?>

Eine Funktion hat also einen Namen, eine Liste von Parametern, und Eine Funktion hat also einen Namen, eine Liste von Parametern, und optional einen Rückgabewertoptional einen Rückgabewert

Page 21: Faculty of Computer Science Einführung in PHP 5. Allgemeines Allgemeines zu PHP –steht für PHP Hypertext Preprocessor –ist eine Skriptsprache –wird eingebettet

Exception HandlingException Handling Ausnahmefehler (Exceptions) können erzeugt und abgefangen Ausnahmefehler (Exceptions) können erzeugt und abgefangen

werdenwerden Es gibt eine vordefinierte Fehlerklasse: Es gibt eine vordefinierte Fehlerklasse: ExceptionException. Von dieser . Von dieser

können benutzerdefinierte Fehlerklassen abgeleitet werdenkönnen benutzerdefinierte Fehlerklassen abgeleitet werden Zu einem Zu einem trytry-Block kann es mehrere -Block kann es mehrere catchcatch-Blöcke geben-Blöcke geben

<?<?trytry {{   $error = "Schwerer Fehler";   $error = "Schwerer Fehler";      throw newthrow new Exception($error); Exception($error);

   // das wird niemals ausgeführt   // das wird niemals ausgeführt   echo "Blah blah";   echo "Blah blah";} } catchcatch (Exception $e) (Exception $e) {{   echo 'Fehler: '. $e->getMessage();   echo 'Fehler: '. $e->getMessage();}}

?>?>

Page 22: Faculty of Computer Science Einführung in PHP 5. Allgemeines Allgemeines zu PHP –steht für PHP Hypertext Preprocessor –ist eine Skriptsprache –wird eingebettet

Web-FormulareWeb-Formulare Web-Formulare sind die beliebteste Form der Web-Formulare sind die beliebteste Form der

Benutzerinteraktion auf WebseitenBenutzerinteraktion auf Webseiten

Die Frage ist: Wie kann man Benutzereingaben in PHP Die Frage ist: Wie kann man Benutzereingaben in PHP verarbeiten?verarbeiten?– Antwort: Die Benutzereingaben werden dem PHP-Skript als

HTTP-Post- oder HTTP-Get-Variablen zur Verfügung gestellt (beide Mechanismen sind Teil des HTTP Protokolls)

– $_POST und $_GET sind vordefinierte assoziative Arrays!

Detaillierte Infos zu allen PHP und Formularen:Detaillierte Infos zu allen PHP und Formularen:http://at.php.net/manual/de/tutorial.forms.php undhttp://at.php.net/manual/de/tutorial.forms.php undhttp://at.php.net/manual/de/faq.html.phphttp://at.php.net/manual/de/faq.html.php

Page 23: Faculty of Computer Science Einführung in PHP 5. Allgemeines Allgemeines zu PHP –steht für PHP Hypertext Preprocessor –ist eine Skriptsprache –wird eingebettet

Web-FormulareWeb-Formulare Formular definieren in der Datei Formular definieren in der Datei form.phpform.php::

<? if(isset($_POST['var'])) { echo "Sie haben {$_POST['var']} eingegeben!"; exit; }?>

<form action="form.php" method="post"><input type="text" name="var"/><input type="submit"/>

</form>

Beim ersten Aufruf im Browser wird das Formular dargestellt:Beim ersten Aufruf im Browser wird das Formular dargestellt:

Nach drücken auf "Abschicken!" wird die Ausgabe dargestellt, weil Nach drücken auf "Abschicken!" wird die Ausgabe dargestellt, weil isset(...)isset(...) zu zu TRUE TRUE evaluiertevaluiert

Page 24: Faculty of Computer Science Einführung in PHP 5. Allgemeines Allgemeines zu PHP –steht für PHP Hypertext Preprocessor –ist eine Skriptsprache –wird eingebettet

PHP LinksPHP Links

Homepage: http://www.php.net oder besser (weil Homepage: http://www.php.net oder besser (weil schneller) http://at.php.net schneller) http://at.php.net

Ein einfaches Tutorial gibts dort auch: Ein einfaches Tutorial gibts dort auch: http://at.php.net/manual/de/tutorial.php http://at.php.net/manual/de/tutorial.php

Eine gute Einführung als PDF gibts von Team Eine gute Einführung als PDF gibts von Team ThinkPHP: www.thinkphp.de ThinkPHP: www.thinkphp.de

Page 25: Faculty of Computer Science Einführung in PHP 5. Allgemeines Allgemeines zu PHP –steht für PHP Hypertext Preprocessor –ist eine Skriptsprache –wird eingebettet

PHP Objekt-Orientierung (OO)PHP Objekt-Orientierung (OO)

PHP 5 bietet volle Unterstützung für PHP 5 bietet volle Unterstützung für ObjektorientierungObjektorientierung

<?<?

classclass Warenkorb { Warenkorb {

privateprivate $korb; $korb;

functionfunction __construct__construct() {() {

$this->korb = Array();$this->korb = Array();

}}

public functionpublic function add($item) { add($item) {

array_push($this->korb ,$item)array_push($this->korb ,$item)

}}

public functionpublic function addGeschenk() { addGeschenk() {

$this->add("Geschenk");$this->add("Geschenk");

}}

}}

?>?>

Page 26: Faculty of Computer Science Einführung in PHP 5. Allgemeines Allgemeines zu PHP –steht für PHP Hypertext Preprocessor –ist eine Skriptsprache –wird eingebettet

PHP OO: KlassenPHP OO: Klassen Klassen werden mit dem Klassen werden mit dem classclass Schlüsselwort deklariert Schlüsselwort deklariert $korb$korb deklariert eine private Instanzvariable deklariert eine private Instanzvariable Man kann auf public Instanzvariablen/methoden mit Man kann auf public Instanzvariablen/methoden mit $this->$this->

zugreifen.zugreifen. __construct__construct()() ist der Konstruktor ist der Konstruktor Sichbarkeitsebenen sind wie üblich Sichbarkeitsebenen sind wie üblich privateprivate, , protectedprotected, , publicpublic. .

Default ist Default ist publicpublic

Die Klasse kann nun wie folgt verwendet werden:Die Klasse kann nun wie folgt verwendet werden:$meinkorb = new Warenkorb();$meinkorb->add("Buch");$meinkorb->addGeschenk();print_r($meinkorb);

Page 27: Faculty of Computer Science Einführung in PHP 5. Allgemeines Allgemeines zu PHP –steht für PHP Hypertext Preprocessor –ist eine Skriptsprache –wird eingebettet

PHP OO: VererbungPHP OO: Vererbung Einfache Vererbung Einfache Vererbung ist möglichist möglich<?<?

classclass PersonalisierterWarenkorb PersonalisierterWarenkorb extendsextends Warenkorb { Warenkorb {protectedprotected $person = ""; # standardwert $person = ""; # standardwert

functionfunction __construct__construct($person = "") {($person = "") { parentparent::__construct(); // Konstructor der Oberklasse::__construct(); // Konstructor der Oberklasse $this->person = $person;$this->person = $person;}}functionfunction __destruct__destruct() {() { // Destruktor...// Destruktor...}}

public functionpublic function getPerson() { getPerson() { return $this->person;return $this->person;

}}}}

?>?> Beachte: Beachte:

– Konstructor der Oberklasse muss von Hand aufgerufen werden! – Standardwert kann bei Methoden für Eingangsparameter

angegeben werden!– Alle methoden sind virtual

Page 28: Faculty of Computer Science Einführung in PHP 5. Allgemeines Allgemeines zu PHP –steht für PHP Hypertext Preprocessor –ist eine Skriptsprache –wird eingebettet

PHP OO: InterfacesPHP OO: Interfaces (Mehrfache) Interfacevererbung (Mehrfache) Interfacevererbung ist möglichist möglich<?<?

interfaceinterface LesenUndSchreiben { LesenUndSchreiben {public functionpublic function lesen($filename); lesen($filename);public functionpublic function schreiben($filename, $daten); schreiben($filename, $daten);

}}

classclass Datei Datei implementsimplements LesenUndSchreiben { LesenUndSchreiben {

public functionpublic function lesen($filename) { lesen($filename) { // lies etwas von $filename// lies etwas von $filename}}

public functionpublic function schreiben($filename, $daten) { schreiben($filename, $daten) { // schreib etwas in $filename// schreib etwas in $filename

}}}}

$file = $file = newnew Datei(); Datei();$file->schreiben("test.txt", "Hallo");$file->schreiben("test.txt", "Hallo");

?>?> Beachte: Beachte:

– Interfaces haben keine Variable und nur public Methoden– Eine Klasse die ein Interface implementiert muss alle Methoden des

Interface implementieren

Page 29: Faculty of Computer Science Einführung in PHP 5. Allgemeines Allgemeines zu PHP –steht für PHP Hypertext Preprocessor –ist eine Skriptsprache –wird eingebettet

PHP OO: Statische/Konstante MemberPHP OO: Statische/Konstante Member Statische Methoden und VariablenStatische Methoden und Variablen<?<?

classclass Irgendwas { Irgendwas {public const public const KONSTANTE = 12; // kein $KONSTANTE = 12; // kein $protected staticprotected static $variable = "Hallo"; $variable = "Hallo";

public staticpublic static functionfunction update($neuerWert) { update($neuerWert) { self::self::$variable = $neuerWert;$variable = $neuerWert;}}

}}classclass WasAnderes WasAnderes extendsextends Irgendwas { Irgendwas {

functionfunction __construct__construct() {() { parent::parent::$variable = "Nix";$variable = "Nix"; // oder alternativ// oder alternativ IrgendwasIrgendwas::::$variable = "Nix";$variable = "Nix";}}

}}

IrgendwasIrgendwas::::update("Neu");update("Neu");?>?> Beachte: Beachte:

– Scope Resolution Operator "::"– Superklasse wird über parent angesprochen– Aktuelle Klasse wird über self angesprochen

Page 30: Faculty of Computer Science Einführung in PHP 5. Allgemeines Allgemeines zu PHP –steht für PHP Hypertext Preprocessor –ist eine Skriptsprache –wird eingebettet

PHP OO: Weitere KonzeptePHP OO: Weitere Konzepte

PHP 5 unterstützt ReflexionPHP 5 unterstützt Reflexion Serialisierung über Serialisierung über __sleep__sleep() und () und __wakeup__wakeup()() Klonen von Objekten mit Klonen von Objekten mit __clone__clone()()

Weiteres zu PHP OO:Weiteres zu PHP OO:

http://at.php.net/manual/de/language.oop5.phphttp://at.php.net/manual/de/language.oop5.php