einführung in php. allgemeines allgemeines zu php –steht für php hypertext preprocessor –ist...

26
Einführung in PHP Einführung in PHP

Upload: bathildis-gernert

Post on 06-Apr-2015

108 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Einführung in PHP. Allgemeines Allgemeines zu PHP –steht für PHP Hypertext Preprocessor –ist eine Skriptsprache –wird eingebettet in HTML –wird serverseitig

Einführung in PHPEinführung in PHP

Page 2: Einführung in PHP. Allgemeines Allgemeines zu PHP –steht für PHP Hypertext Preprocessor –ist eine Skriptsprache –wird eingebettet in HTML –wird serverseitig

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

Page 3: Einführung in PHP. Allgemeines Allgemeines zu PHP –steht für PHP Hypertext Preprocessor –ist eine Skriptsprache –wird eingebettet in HTML –wird serverseitig

PHP-CodePHP-Code4 verschiedene Möglichkeiten zur Einbettung in HTML 4 verschiedene Möglichkeiten zur Einbettung in HTML

(abhängig von der PHP-Konfiguration)(abhängig von 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 Jede PHP-Anweisung muss mit Strichpunkt abgeschlossen werden!werden!<? echo "Hallo"; ?>

Page 4: Einführung in PHP. Allgemeines Allgemeines zu PHP –steht für PHP Hypertext Preprocessor –ist eine Skriptsprache –wird eingebettet in HTML –wird serverseitig

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: Einführung in PHP. Allgemeines Allgemeines zu PHP –steht für PHP Hypertext Preprocessor –ist eine Skriptsprache –wird eingebettet in HTML –wird serverseitig

VariablenVariablen• in PHP beginnen Variable mit einem Dollarzeichen (in PHP beginnen Variable mit einem Dollarzeichen ($$), gefolgt vom Namen der ), gefolgt vom Namen der

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

<? # Deklaration und Initialisierung $var1 = "Hallo"; $var2 = "Schatzi";

# Ausgabe print $var1; # Hallo

# Verkettung mit Punkt (.) print $var1 . " " . $var2; # Hallo Schatzi

# alternativ auch innerhalb der print-Anweisung print "$var1, mein $var2"; # Hallo, mein Schatzi

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

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

Page 6: Einführung in PHP. Allgemeines Allgemeines zu PHP –steht für PHP Hypertext Preprocessor –ist eine Skriptsprache –wird eingebettet in HTML –wird serverseitig

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: Einführung in PHP. Allgemeines Allgemeines zu PHP –steht für PHP Hypertext Preprocessor –ist eine Skriptsprache –wird eingebettet in HTML –wird serverseitig

ArraysArraysArrays bestehen aus mehreren indizierten Elementen. Arrays bestehen aus mehreren indizierten Elementen. "Normale" Arrays haben einen numerischen Index "Normale" Arrays haben einen numerischen Index beginnend bei Null.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: Einführung in PHP. Allgemeines Allgemeines zu PHP –steht für PHP Hypertext Preprocessor –ist eine Skriptsprache –wird eingebettet in HTML –wird serverseitig

ArraysArraysAssoziative Arrays verwenden String- oder Integer-Indices, Assoziative Arrays verwenden String- oder Integer-Indices, um beliebige Werte zu referenzieren:um beliebige Werte 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.

Page 9: Einführung in PHP. Allgemeines Allgemeines zu PHP –steht für PHP Hypertext Preprocessor –ist eine Skriptsprache –wird eingebettet in HTML –wird serverseitig

Vordefinierte VariablenVordefinierte VariablenIn 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: Einführung in PHP. Allgemeines Allgemeines zu PHP –steht für PHP Hypertext Preprocessor –ist eine Skriptsprache –wird eingebettet in HTML –wird serverseitig

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: Einführung in PHP. Allgemeines Allgemeines zu PHP –steht für PHP Hypertext Preprocessor –ist eine Skriptsprache –wird eingebettet in HTML –wird serverseitig

OperatorenOperatorenLogische OperatorenLogische Operatoren

<? # logisches UND $a and $b; $a && $b;

# logisches ODER $a or $b; $a || $b;

# exklusives ODER $a xor $b;

# Negation !$a;?>

VergleichsoperatorenVergleichsoperatoren

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

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

Page 12: Einführung in PHP. Allgemeines Allgemeines zu PHP –steht für PHP Hypertext Preprocessor –ist eine Skriptsprache –wird eingebettet in HTML –wird serverseitig

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: Einführung in PHP. Allgemeines Allgemeines zu PHP –steht für PHP Hypertext Preprocessor –ist eine Skriptsprache –wird eingebettet in HTML –wird serverseitig

KontrollstrukturenKontrollstrukturen• Konstrollstrukturen sind wichtige Elemente einer Konstrollstrukturen sind wichtige Elemente einer

Programmiersprache, da sie dynamische und Programmiersprache, da sie dynamische und variable Abläufe ermöglichenvariable Ablä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: Einführung in PHP. Allgemeines Allgemeines zu PHP –steht für PHP Hypertext Preprocessor –ist eine Skriptsprache –wird eingebettet in HTML –wird serverseitig

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: Einführung in PHP. Allgemeines Allgemeines zu PHP –steht für PHP Hypertext Preprocessor –ist eine Skriptsprache –wird eingebettet in HTML –wird serverseitig

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

sich ein switch-Statementsich ein switch-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: Einführung in PHP. Allgemeines Allgemeines zu PHP –steht für PHP Hypertext Preprocessor –ist eine Skriptsprache –wird eingebettet in HTML –wird serverseitig

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

FALSEFALSE evaluiert evaluiert<? $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: Einführung in PHP. Allgemeines Allgemeines zu PHP –steht für PHP Hypertext Preprocessor –ist eine Skriptsprache –wird eingebettet in HTML –wird serverseitig

forforfor-Schleifen sind etwas komplexer, da Sie for-Schleifen sind etwas komplexer, da Sie 3 (optionale) Ausdrücke beinhalten:3 (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: Einführung in PHP. Allgemeines Allgemeines zu PHP –steht für PHP Hypertext Preprocessor –ist eine Skriptsprache –wird eingebettet in HTML –wird serverseitig

foreachforeach• foreach ist ein Konstrukt zum bequemen foreach ist ein Konstrukt zum bequemen

Durchlaufen von ArraysDurchlaufen von Arrays<? $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: Einführung in PHP. Allgemeines Allgemeines zu PHP –steht für PHP Hypertext Preprocessor –ist eine Skriptsprache –wird eingebettet in HTML –wird serverseitig

WeitereWeitereIn 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 Der Code einer eingebundenen Datei wird an die Stelle des include-Statements gesetztdes include-Statements gesetzt

Page 20: Einführung in PHP. Allgemeines Allgemeines zu PHP –steht für PHP Hypertext Preprocessor –ist eine Skriptsprache –wird eingebettet in HTML –wird serverseitig

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: Einführung in PHP. Allgemeines Allgemeines zu PHP –steht für PHP Hypertext Preprocessor –ist eine Skriptsprache –wird eingebettet in HTML –wird serverseitig

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 Die Frage ist: Wie kann man Benutzereingaben in PHP verarbeiten?in PHP 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 $_GETsind 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 22: Einführung in PHP. Allgemeines Allgemeines zu PHP –steht für PHP Hypertext Preprocessor –ist eine Skriptsprache –wird eingebettet in HTML –wird serverseitig

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 23: Einführung in PHP. Allgemeines Allgemeines zu PHP –steht für PHP Hypertext Preprocessor –ist eine Skriptsprache –wird eingebettet in HTML –wird serverseitig

PHP LinksPHP Links

• Homepage: http://www.php.net oder Homepage: http://www.php.net oder besser (weil schneller) http://at.php.net besser (weil 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 Eine gute Einführung als PDF gibts von Team ThinkPHP: www.thinkphp.de Team ThinkPHP: www.thinkphp.de

Page 24: Einführung in PHP. Allgemeines Allgemeines zu PHP –steht für PHP Hypertext Preprocessor –ist eine Skriptsprache –wird eingebettet in HTML –wird serverseitig

PHP KlassenPHP Klassen

• PHP unterstüzt rudimentäre OOP AnsätzePHP unterstüzt rudimentäre OOP Ansätze<?<?

class Warenkorb {class Warenkorb {

var $korb;var $korb;

function Warenkorb () {function Warenkorb () {

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

}}

function add(item) {function add(item) {

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

}}

function addGeschenk() {function addGeschenk() {

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

}}

}}

?>?>

Page 25: Einführung in PHP. Allgemeines Allgemeines zu PHP –steht für PHP Hypertext Preprocessor –ist eine Skriptsprache –wird eingebettet in HTML –wird serverseitig

PHP KlassenPHP Klassen• Klassen werden mit dem Klassen werden mit dem classclass Schlüsselwort deklariert Schlüsselwort deklariert• var $korbvar $korb deklariert eine Instanzvariable, man kann auf deklariert eine Instanzvariable, man kann auf

Instanzvariablen mit Instanzvariablen mit $this-> $this-> zugreifen.zugreifen.• function Warenkorb()function Warenkorb() ist der Konstruktor – eine ist der Konstruktor – eine

Funktion die gleich heisst wie die KlasseFunktion die gleich heisst wie die Klasse• Funktionen innerhalb der Klasse werden ebenfalls mit Funktionen innerhalb der Klasse werden ebenfalls mit $this->$this-> aufgerufen aufgerufen

• privateprivate, , protectedprotected, , publicpublic ist nicht möglich, alles ist immer ist nicht möglich, alles ist immer 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 26: Einführung in PHP. Allgemeines Allgemeines zu PHP –steht für PHP Hypertext Preprocessor –ist eine Skriptsprache –wird eingebettet in HTML –wird serverseitig

PHP KlassenPHP Klassen• single inheritancesingle inheritance ist möglich ist möglich<?<?

class PersonalisierterWarenkorb extends Warenkorb {class PersonalisierterWarenkorb extends Warenkorb {var $person;var $person;function PersonalisierterWarenkorb ($person) {function PersonalisierterWarenkorb ($person) { $this->Warenkorb(); // Konstructor der Oberklasse$this->Warenkorb(); // Konstructor der Oberklasse $this->person = $person;$this->person = $person;}}

function getPerson() {function getPerson() { print $this->person;print $this->person;

}}}}

?>?>

• Beachte: Beachte: – Konstructor der Oberklasse muss von Hand

aufgerufen werden, – Alle methoden sind virtual– Nur ein Konstruktor ist möglich