13.11.2014 Aufrufe

PHP – Grundlagen

PHP – Grundlagen

PHP – Grundlagen

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

Daniel Höfer<br />

Programmieren – <strong>PHP</strong>


• <strong>PHP</strong> – <strong>PHP</strong>: Hypertext Preprocessor<br />

• Entwickelt von: <strong>PHP</strong> Group<br />

• Aktuelle Version: 5.3.0<br />

• Webpräsenz: http://www.php.net


• Skriptsprache für Webentwicklung<br />

• Skript wird von Server interpretiert und<br />

abgearbeitet. Ergebnis wird an den Client<br />

geschickt und dort interpretiert (IE, FF, …)<br />

• Dateiendung: .php<br />

• Grundlegend ist Syntax mit C / C++<br />

vergleichbar


Anfrage: news.html<br />

1. Client fordert Datei vom<br />

Server an (z.B. news.html)


news.html<br />

1. Client fordert Datei vom<br />

Server an (z.B. news.html)<br />

2. Server sucht Datei und<br />

übermittelt den Inhalt an den<br />

Client<br />

Apache Webserver


1. Client fordert Datei vom<br />

Server an (z.B. news.html)<br />

2. Server sucht Datei und<br />

übermittelt den Inhalt an den<br />

Client<br />

3. Client (Browser) interpretiert<br />

HTML-Code aus news.html und<br />

zeigt Inhalt an.<br />

news.<br />

html


Anfrage: news.php<br />

1. Client fordert Datei vom<br />

Server an (z.B. news.php)


news.php<br />

1. Client fordert Datei vom<br />

Server an (z.B. news.php)<br />

2. Server sucht Datei und<br />

interpretiert <strong>PHP</strong> Code (Skript<br />

wird ausgeführt)


news.php<br />

Generierter<br />

HTML Code<br />

<strong>PHP</strong> Interpreter<br />

1. Client fordert Datei vom<br />

Server an (z.B. news.php)<br />

2. Server sucht Datei und<br />

interpretiert <strong>PHP</strong> Code (Skript<br />

wird ausgeführt)<br />

3. Generierter HTML-Code der<br />

<strong>PHP</strong> Datei wird anschließend an<br />

den Client übermittelt<br />

Apache Webserver


news.php<br />

1. Client fordert Datei vom<br />

Server an (z.B. news.php)<br />

2. Server sucht Datei und<br />

interpretiert <strong>PHP</strong> Code (Skript<br />

wird ausgeführt)<br />

3. Generierter HTML-Code der<br />

<strong>PHP</strong> Datei wird anschließend an<br />

den Client übermittelt<br />

4. Client (Browser) interpretiert<br />

HTML-Code aus news.html und<br />

zeigt Inhalt an.<br />

HTML<br />

Code


• HTML<br />

• Benötigt einen simplen Webserver<br />

▪ z.B.: Apache, IIS, …<br />

• HTML Dateien werden nur übermittelt<br />

• <strong>PHP</strong><br />

• Benötigt einen simplen Webserver und den <strong>PHP</strong><br />

Interpreter.<br />

• <strong>PHP</strong>-Anbindung für alle gängigen Webserver.


• <strong>PHP</strong><br />

• Installation der einzelnen Komponenten erfordert<br />

extra Konfiguration.<br />

• Lösung: Gesamtpacket XAMPP<br />

▪ Wird von „Apache Friends“ bereitgestellt<br />

▪ Beinhaltet unter anderem<br />

▪ Apache Webserver<br />

▪ <strong>PHP</strong> Interpreter<br />

▪ MySQL Datenbank<br />

▪ Interface zur Administration dieser Komponenten


• <strong>PHP</strong> Dateien enden mit „.php“ und befinden<br />

sich, wie HTML Dateien im Webverzeichnis<br />

des Webservers.<br />

• In einer <strong>PHP</strong> Datei kann sich<br />

• <strong>PHP</strong> Code<br />

• HTML Code<br />

befinden


• <strong>PHP</strong> Code wird mit „“ abgeschlossen.<br />

• <strong>PHP</strong> Bereiche können beliebig oft in einer<br />

<strong>PHP</strong> Datei vorkommen.<br />

• Text außerhalb eine <strong>PHP</strong> Bereichs wird als<br />

Text bzw. HTML interpretiert.


• Beispiel (reine Textausgabe)<br />

<br />

echo „Hello World!“;


• Testen der <strong>PHP</strong>-Installation<br />

• Ausgabe: Detaillierte Informationen über die <strong>PHP</strong><br />

Installation und alle aktivierten Module<br />

<br />

phpinfo();


• Beginn einer Variable mit einem<br />

Dollarzeichen ($)<br />

• Anschließend zwingend ein Buchstabe oder „_“<br />

• Bei der Definition werden keine Datentypen<br />

angegeben.<br />

• Typ wird anhand der Variablenzuweisung<br />

bestimmt.


• Groß-Kleinschreibung wird beachtet<br />

• $var und $vAr sind unterschiedliche Variablen<br />

• unset() – Löschen einer Variablenbelegung<br />

• isset()<br />

– Prüft, ob die Variable belegt ist


• Variablentypen<br />

Datentyp<br />

Beispiel / Beschreibung<br />

String<br />

„a“, „bla“, „Test test“<br />

Integer 1, 2, 500<br />

Float / Double<br />

1.5, 20.0, 17e2<br />

Boolean<br />

frue, false<br />

Array<br />

Mehrwertiger Datentyp<br />

Object<br />

Mehrwertiger Datentyp<br />

Resource<br />

Referenz auf externe Quellen<br />

Null<br />

Typ ohne Wert


• Variablentypen<br />

Datentyp Konvertierung Prüfung<br />

String (string) is_string<br />

Integer (int) is_int, is_integer<br />

Float / Double (float), (double) is_float, is_double<br />

Boolean (bool), (boolean) is_bool<br />

Array (array) is_array<br />

Object (object) is_object<br />

Null - is_null


• Operatoren mit Variablen<br />

• Zuweisung einer Variable (by Value)<br />

▪ $var = 10;<br />

$var2 = $var;<br />

$var2 = 20;<br />

Zuweisung des Wertes 10 auf $var2<br />

▪ $var hat den Wert 10, $var2 hat den Wert 20


• Operatoren mit Variablen<br />

• Zuweisung einer Variable (by Reference)<br />

▪ $var = 10;<br />

$var2 = &$var;<br />

$var2 = 20;<br />

& signalisiert Zuweisung by Reference<br />

Zuweisung der Adresse von $var auf<br />

$var2. $var2 „zeigt“ auf $var<br />

▪ $var hat den Wert 20, $var2 hat den Wert 20


• Operatoren mit Variablen<br />

• Doppeltes $ Zeichen<br />

▪ Variable wird ausgewertet und Wert der Variable als<br />

tatsächlicher Variablennamen herangezogen.<br />

▪ Beispiel<br />

▪ $gehalt = 1000;<br />

$variable = „gehalt“;<br />

echo $$variable;<br />

$$variable<br />

„gehalt“<br />

$variable hat den Wert „gehalt“<br />

▪ Ergebnis: Es wird „1000“ ausgegeben


• Operatoren mit Variablen<br />

• Funktionsaufruf aus Variablen<br />

▪ $wert = „hallo“;<br />

$funktion = „strlen“;<br />

echo $funktion($wert);<br />

Wird übersetzt in strlen(„hallo“);<br />

und mit echo ausgegeben.<br />

▪ Es wird die Funktion strlen(„hallo“) aufgerufen. Diese<br />

gibt den Wert „5“ aus.


• Strings<br />

• sind Zeichenketten<br />

• String werden mit einem Punkt (.)<br />

zusammengefügt<br />

• $var = „Hallo“.“wie“.“gehts“;<br />

• Zeichenkette mit „“ oder ‚‘ definieren<br />

• $var = „Hallo“;<br />

$var2 = ‚Hallo‘;<br />

// = „Hallowiegehts“


• Zeichenkette mit „“ oder ‚‘ definieren<br />

• $var = „Hallo“;<br />

$var2 = ‚Hallo‘;<br />

• Unterschied<br />

▪ Passende Werte innerhalb von „“ werden aufgelöst.<br />

▪ Werte innerhalb von ‚‘ werden nicht aufgelöst<br />

▪ $a = „Test“;<br />

echo „Das ist eine $a-Variable“;<br />

▪ Ergebnis: „Das ist eine Test-Variable“


• Stringfunktionen<br />

• string ltrim(string $str);<br />

• string rtrim(string $str);<br />

• string trim(string $str);<br />

• string substr(string $str, int $start [,int $len]);<br />

• string str_replace(string $alt, string $neu, string $str);<br />

• string strpos(string $str, string $suche [, int $startpos]);<br />

• string strstr(string $str, string $suche);<br />

• …


• Integer<br />

• Gängige Operationen<br />

▪ +<br />

Addieren<br />

▪ -<br />

Subtrahieren<br />

▪ *<br />

Multiplizieren<br />

▪ /<br />

Dividieren<br />

▪ %<br />

Modulo<br />

▪ ++<br />

Inkrement<br />

▪ --<br />

Dekrement<br />

▪ +=, -=, /=, *=, … Operation und Zuweisung in einem<br />

▪ …


• Float / Double<br />

• Definition durch einen Punkt (.) als Kommastrich<br />

▪ $var = 100.25;<br />

• Rundungsfunktionen<br />

▪ floor()<br />

Abrunden<br />

▪ ceil()<br />

Aufrunden<br />

▪ round()<br />

Runden


• Boolean<br />

• Kann zwei gültige Werte annehmen<br />

▪ true<br />

▪ false<br />

• Operatoren<br />

▪ == Vergleich ob der Wert identisch ist<br />

▪ === Vergleich ob die Operatoren den gleichen Typ<br />

haben.<br />

▪ Logische Operatoren: || (or), && (and), xor, ! (not)


• Boolean (Beispiel)<br />

• $var = 10;<br />

$str = ‚10‘;<br />

$var == $str; // Ausdruck liefert den Wert true<br />

$var === $str; // Ausdruck liefert den Wert false


• Array<br />

• Sind Objekte, die mehrere Elemente beinhalten<br />

können.<br />

• Elemente können durch einen eindeutigen Namen<br />

(assoziatives Array) oder durch eine Nummer<br />

(nummerisches Array) identifiziert werden.


• Array<br />

• Array anlegen<br />

$arr = array(); // Erzeugt ein leeres Array<br />

$arr = array(10, 20, 30); // Erzeugt Array mit {10, 20, 30}<br />

• Array befüllen<br />

$arr[10] = „Hallo“;<br />

// Befüllt Arrayindex 10 mit dem<br />

// Wert „Hallo“<br />

$arr[] = „wie geht’s?“; // Erzeugt neuen Arrayindex und<br />

// befüllt ihn mit „wie geht‘s?“


• Array<br />

• Assoziatives Array anlegen<br />

$arr = array(„stadt“ => „Wien“, „plz“ => „1010“);<br />

• Ausgabe aller Arrayelemente<br />

print_r($arr);<br />

• Abfrage aus einem Array<br />

$arr[„stadt“]<br />

// Liefert den Wert „Wien“


• Array sortieren<br />

• sort(array $arry [,$sortierTyp])<br />

▪ Normale Sortierung der Werte<br />

▪ Schlüssel werden nicht behandelt<br />

• asort(array $arry [,$sortierTyp])<br />

▪ Sortiertung mit Bezug auf Werte und Schlüssel<br />

• ksort(array $arry [,$sortierTyp])<br />

▪ Sortierung mit Bezug auf den Schlüssel<br />

• rsort(array $arry [,$sortierTyp])<br />

▪ Inverse Sortierung der Werte<br />

▪ Schlüssel werden nicht behandelt


• Array sortieren<br />

• Sortiertypen<br />

▪ SORT_REGULAR<br />

▪ Werte werden normal interpretiert<br />

▪ SORT_NUMERIC<br />

▪ Werte werden als Zahlen interpretiert<br />

▪ SORT_STRING<br />

▪ Werte werden als Zeichenketten interpretiert


• Array sortieren<br />

$arr = array(„a“ => „Rapid“,<br />

„b“ => „Salzburg“,<br />

„c“ => „Austria“)<br />

• sort($arr) liefert<br />

(„0“ => „Austria“,<br />

„1“ => „Rapid“,<br />

„2“ => „Salzburg“)


• Array sortieren<br />

$arr = array(„a“ => „Rapid“,<br />

„b“ => „Salzburg“,<br />

„c“ => „Austria“)<br />

• asort($arr) liefert<br />

(„c“ => „Austria“,<br />

„a“ => „Rapid“,<br />

„b“ => „Salzburg“)


• Array sortieren<br />

$arr = array(„a“ => „Rapid“,<br />

„b“ => „Salzburg“,<br />

„c“ => „Austria“)<br />

• ksort($arr) liefert<br />

(„a“ => „Austria“,<br />

„b“ => „Rapid“,<br />

„c“ => „Salzburg“)


• Array sortieren<br />

$arr = array(„a“ => „Rapid“,<br />

„b“ => „Salzburg“,<br />

„c“ => „Austria“)<br />

• rsort($arr) liefert<br />

(„0“ => „Salzburg“,<br />

„1“ => „Rapid“,<br />

„2“ => „Austria“)


• Arrayfunktionen<br />

• Suche nach Werten in einem Array<br />

bool in_array($suche, array $array [, bool $typ])<br />

▪ Gibt true / false zurück (ob Wert vorhanden ist)<br />

▪ Wenn $typ = true: Es wird typsicher geprüft (===)<br />

mixed array_search($suche, array $array [,bool $typ])<br />

▪ Gibt den Key des Wertes zurück falls vorhanden<br />

▪ Gibt false zurück fall der Wert nicht vorhanden ist<br />

▪ Wenn $typ = true: Es wird typsicher geprüft (===)<br />

bool array_key_exists($gesucht, array $array)<br />

▪ Gibt true / false zurück (ob Key vorhanden ist)


• Arrayfunktionen zur Zeigerbewegung<br />

• Zeiger hält aktuelle Arrayposition<br />

• Funktionen dazu<br />

▪ current() Aktuelles Element im Array<br />

▪ prev() Vorheriges Element<br />

▪ next() Nächstes Element<br />

▪ reset() Zurück zum ersten Element<br />

▪ end() Zeiger auf die letzte Position setzen


• Arrayfunktionen für Stackoperationen<br />

• Stack als Stapel von Elementen<br />

• Zwei Funktionen<br />

▪ int array_push(array $stack, mixed $var)<br />

▪ mixed array_pop(array $stack)<br />

• Push legt Element oben auf den Stapel<br />

• Pop holt Element oben vom Stapel


• Objekte<br />

• Objektorientiertes Sprachelement<br />

• Objekte repräsentieren Elemente die vom<br />

Programm abgebildet werden sollen<br />

• …beinhalten Attribute<br />

• …besitzen Funktionen


• Ressourcen<br />

• Elemente aus externen Datenquellen<br />

• z.B.:<br />

▪ Dateien zum lesen / schreiben<br />

▪ Ergebnisse von Datenbankabfragen


• NULL<br />

• Variablen, denen kein Wert zugewiesen wurde<br />

• Variablen, die mit unset() entladen wurden<br />

• Funktion is_null($variable) prüft auf NULL


• Feste Werte im Programm<br />

• Wert kann nur bei der Definition festgelegt<br />

werden.<br />

• Konstanten werden GROß geschrieben um<br />

diese leichter zu identifizieren.<br />

• Definition mit<br />

define(„“, );<br />

• z.B.<br />

define(„VORWAHL“, „+43“);


• Konstante kann dann im Programm<br />

verwendet werden.<br />

• z.B.<br />

$telefon = VORWAHL + „1234567“;<br />

• Typ kann mit gettype();<br />

abgefragt werden.


• // Kommentar<br />

• für einzeilige Kommentare bis Zeilenende<br />

• /* Kommentar */<br />

• für mehrzeiligen Kommentar<br />

• /** <strong>PHP</strong>Doc Kommentar */<br />

• für mehrzeiligen <strong>PHP</strong>Doc Kommentar<br />

• Beinhalten Parameter beginnend mit @<br />

▪ @param<br />

▪ @return<br />

▪ @version<br />

▪ …<br />

Parameterbeschreibung einer Funktion<br />

Returnwertbeschreibung<br />

Versionsnummer


• Funktionen werden mit function definiert<br />

function funktionsname($param1, $param2) {<br />

// <strong>PHP</strong> Code<br />

}<br />

• return, wenn die Funktion einen Wert liefern soll<br />

function addiere($param1, $param2) {<br />

return $param1 + $param2;<br />

}


• Globale Variablen in Funktionen verwenden<br />

• In Funktion muss angegeben werden, welche<br />

globale Funktion verwendet werden soll<br />

▪ Schlüsselwort: global<br />

Function piRechnung($param1) {<br />

global $pi;<br />

return $param1 * $pi;<br />

}


• If - Konstrukt<br />

if ($bedingung) {<br />

// <strong>PHP</strong> Code<br />

} elseif ($alternative) {<br />

// <strong>PHP</strong> Code<br />

} else {<br />

}<br />

// <strong>PHP</strong> Code


• If - Konstrukt<br />

if ($bedingung) {<br />

// <strong>PHP</strong> Code<br />

} elseif ($alternative) {<br />

// <strong>PHP</strong> Code<br />

} else {<br />

// <strong>PHP</strong> Code<br />

}<br />

Code wird ausgeführt, wenn<br />

$bedingung den Wert true<br />

liefert<br />

Code wird ausgeführt, wenn<br />

$bedingung nicht zutrifft<br />

jedoch $alternative zutrifft<br />

Wird ausgeführt, wenn<br />

keine Bedingung zutrifft


• If - Konstrukt (alternative)<br />

echo ($x == 10) ? „Ja“ : „Nein“;<br />

Bedingung<br />

Wert, wenn Bedingung True<br />

Wert, wenn Bedingung False


• Switch - Konstrukt<br />

• Entscheidung, wenn mehrere bestimmte Werte<br />

geprüft werden müssen.<br />

switch($variable) {<br />

case ‚100‘: // Code für Wert ‚100‘<br />

break;<br />

case ‚200‘: // Code für Wert ‚200‘<br />

break;<br />

}


• Switch - Konstrukt<br />

• break sorgt für Ende der Abarbeitung im Switch. Fehlt<br />

der Break-Befehl, werden alle Befehle danach im<br />

Switch noch ausgeführt. Kann auch gewollt sein:<br />

switch($variable) {<br />

case ‚100‘:<br />

case ‚200‘: // Code für Wert ‚100‘ und Wert ‚200‘<br />

break;<br />

}


• Switch - Konstrukt<br />

• default wird verwendet, wenn kein Wert im Switch<br />

zutrifft.<br />

switch($variable) {<br />

case ‚100‘: // <strong>PHP</strong> Code<br />

break;<br />

default: // Wird ausgeführt wenn $variable != ‚100‘<br />

}


• While - Schleife<br />

• Schleife, die so oft wiederholte wird, wie die<br />

Bedingung zutrifft.<br />

while ($bedingung) {<br />

}<br />

// <strong>PHP</strong> Code


• Do-While - Schleife<br />

• Schleife, die so oft wiederholte wird, wie die<br />

Bedingung zutrifft. Die Bedingung wird jedoch<br />

erst am Ende geprüft.<br />

• Inhalt der Schleife wird min. einmal durchlaufen<br />

do {<br />

// <strong>PHP</strong> Code<br />

} while ($bedingung)


• For - Schleife<br />

for(startanweisung; laufbedingung; schlussbefehl) {<br />

// <strong>PHP</strong> Code<br />

}<br />

• Beispiel<br />

for($x = 1; $x < 10; $x++) {<br />

echo „Aktueller Wert von x = „.$x;<br />

}


• For - Schleife<br />

for(startanweisung; laufbedingung; schlussbefehl) {<br />

// <strong>PHP</strong> Code<br />

}<br />

• Beispiel<br />

for($x = 1; $x < 10; $x++) {<br />

echo „Aktueller Wert von x = „.$x;<br />

}


• For-Each - Schleife<br />

• Schleife für iterierbare Elemente (z.B.: Array)<br />

$arr = array();<br />

$arr[‚ab‘] = „Erster Eintrag“;<br />

$arr[‚cd‘] = „Zweiter Eintrag“;<br />

foreach($arr as $key => $value) {<br />

echo „Element $key mit Wert $value“;<br />

}


• Sind Arrays, die Daten von <strong>PHP</strong> bzw. über den<br />

Webserver beinhalten und somit dem Programmierer<br />

zugänglich gemacht werden.<br />

• Arten<br />

• Arrays mit Daten über den Webserver / <strong>PHP</strong><br />

• Arrays mit Daten über Benutzereingaben<br />

• Beginnen immer mit $_<br />

• $_POST<br />

• $_GET<br />

• …


• $_POST Array<br />

• Liefert Inhalte, die mittels POST übertragen<br />

werden (z.B. aus einem HTML Formular).<br />

• Wenn es z.B. das Formularfeld „name“ gibt, wird<br />

dieses mit $_POST[‚name‘] ausgelesen.<br />

• $_GET Array<br />

• Wie beim $_POST Array, nur bei der GET<br />

Anweisung.


• $_FILES<br />

• Beinhaltet Informationen über alle Dateien, die<br />

auf den Server hochgeladen wurden.<br />

• Jedes Arrayelement beinhaltet die Informationen<br />

▪ name<br />

▪ type<br />

▪ tmp_name<br />

▪ error<br />

▪ size<br />

Name der Datei<br />

Mime-Type<br />

Temporärer Name auf dem Server<br />

Fehlercode<br />

Größe der Datei in Byte


• $_FILES<br />

• Beispielausgabe mittels print_r($_FILES)<br />

Array<br />

(<br />

[uploadFile] => Array<br />

(<br />

[name] => datei.txt<br />

[type] => text/plain<br />

[tmp_name] => C:\xampp\tmp\php102.tmp<br />

[error] => 0<br />

[size] => 102<br />

)<br />

)


• $_REQUEST<br />

• Sammelarray für Benutzereingaben / Werte<br />

• Beinhaltet unter anderem Werte aus den Arrays<br />

▪ $_POST<br />

▪ $_GET<br />

▪ $_COOKIE


• $_COOKIE<br />

• Cookies<br />

▪ sind kleine Informationsspeicher auf dem Client<br />

▪ haben eine bestimmte Lebensdauer.<br />

• Anwendungsbeispiele<br />

▪ Speichern von Kundendaten<br />

▪ Session ID speichern<br />

▪ Einkaufswagen im Onlineshop<br />

▪ …<br />

• $_COOKE[‚Keksname‘] liefert entsprechendes Cookie


• $_SESSION<br />

• Eine Session wird beim Start des Clients (Browser)<br />

angelegt und identifiziert diesen eindeutig.<br />

• Anwendungsgebiete<br />

▪ Übergabe von Informationen zwischen <strong>PHP</strong> Skripts auf<br />

einer Webseite.<br />

▪ Anmeldung als User über eine bestimmte Zeit.<br />

▪ …<br />

• Mit $_SESSION[‚session-id‘] kann der Inhalt der<br />

Session mit der ID ‚session-id‘ abgerufen werden.


• $_SERVER<br />

• Enthält Informationen über den HTTP Header der aktuellen<br />

Anfrage, sowie lokale Pfade des Betriebssystems und Skriptes.<br />

• Wichtige Einträge<br />

• $_SERVER[‚DOCUMENT_ROOT‘]<br />

▪ Webverzeichnis<br />

• $_SERVER[‚<strong>PHP</strong>_SELF‘]<br />

▪ Relativer Pfad im Webverzeichnis<br />

• $_SERVER[‚HTTP_USER_AGENT‘]<br />

▪ Enthält Identifier über verwendeten Browser<br />

• $_SERVER[‚HTTP_REFERER‘]<br />

▪ Enthält letzte Website, wenn verlinkt. Sonst leer


• $GLOBALS<br />

• Enthält alle Referenzen aus den superglobalen<br />

Arrays<br />

• z.B.<br />

▪ $GLOBALS[‚_POST‘][‚file‘]


• Unter anderem bei der Fehlersuche von<br />

Interesse.<br />

• __LINE__<br />

▪ Aktuelle Zeilennummer<br />

• __FILE__<br />

▪ Aktueller Pfad des ausgeführten Skripts<br />

• __FUNCTION__<br />

▪ Aktuelle Funktion


• Skript kann jederzeit mit der Funktion<br />

die($msg); beendet werden.<br />

if($fehler) {<br />

}<br />

die(„Es ist ein Fehler in Zeile „.__LINE__.“<br />

aufgetreten“);


• Callback zur Fehlerbehandlung<br />

• Es kann eine Callback-Funktion registriert werden, die im<br />

Fehlerfall aufgerufen wird.<br />

• Ermöglicht eine individuelle Fehlerausgabe.<br />

• Registrieren der Callbackfunktion<br />

mixed set_error_handler($callback [, int $typ]);<br />

• Callback – Signatur<br />

funktionsname($fehlernr, $fehlertext [,$fehlerskript [, $fehlerzeile [,<br />

array $fehlerkontext]]])


• Callback zur Fehlerbehandlung (Beispiel)<br />


• <strong>PHP</strong> Skripte können andere Dateien zur<br />

Laufzeit inkludieren.<br />

• Mehrfach verwendeter Code kann so in eine Datei<br />

ausgelagert werden.<br />

• Externe Bibliotheken / Skripte müssen ebenfalls<br />

auf diese Art eingebunden werden


• Inkludieren mit include(Datei)<br />

• Sucht die Datei und liest den Code aus der Datei<br />

an die Stelle der include Anweisung.<br />

• Wenn ein Fehler beim inkludieren auftritt, wird<br />

eine Warnung ausgegeben.<br />

• Inkludieren mit require(Datei)<br />

• Sucht die Datei und liest den Code aus der Datei<br />

an die Stelle der require Anweisung.<br />

• Wenn ein Fehler beim inkludieren auftritt, wird<br />

das Skript mit einem Fehler abgebrochen.


• Problem<br />

• Wenn include(‚DateiXY‘) öfters ausgeführt wird,<br />

kann es z.B. passieren, dass eine Variable,<br />

Funktion, Klasse öfters definiert wird => FEHLER<br />

• Lösung:<br />

• include_once(Datei);<br />

• require_once(Datei);<br />

• Funktion wie include bzw. require, nur wird eine<br />

Datei bei mehrmaliger Ausführung nur einmal<br />

inkludiert!

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!