Navigation überspringen

PHP - Grundlagen

PHP ist eine Scriptsprache

1995 wurde PHP (Personal Home Page Tools) von Rasmus Lerdorf entwickelt, um Perl-Skripte zu koordinieren. Heute ist PHP ein Pseudonym für Hypertext Preprocessor.

Was heißt PHP-Scriptsprache?

PHP ist strenggenommen ein System / Software, dass Befehle entgegennehmen kann und nach Routinen abarbeitet. PHP bildet kein Kompilat! Die Ausführungsanweisungen liegen also nicht als Maschinencode vor wie es zum bei Hochsprachen wie Java (JIT-Compiler) oder C++ der Falle ist. Dadurch gibt es auch keine ausführbaren PHP-Dateien. Es gibt vielmehr PHP-Quelltexte, die für einen Interpreter geparsed werden, damit dieser die Anweisungen ausführt. Der Parser erfüllt hierbei die Aufbereitung für den Interpreter. Er formt den Quelltext in verständliche Form für den Interpreter um. Dieser kann dann die Anweisung ausführen. Gegenüber einer Compiler-Sprache verläuft die Verarbeitung zeilenweise, was wiederum vor und Nachteile hat. Applikationen in Hochsprachen wie z.B. Java werden erst ausgeführt nachdem der JIT-Compiler zur Laufzeit einen vollständigen Maschinencode erzeugt hat. PHP liegt also in Form von Scripten vor.

Ausnahmen und nicht behandelt in diesem Kurs:

  • PHP-Compiler (HipHop)
  • ZEND-Framework

Verständliche Programmier-Paradigmen:

imperativ, objektorientiert, funktional, reflexiv, prozedural

Verbreitung

PHP hat sich weitverbreitet im Webdesign. Da ausführbarer PHP-Quelltext stets einen Interpreter benötigt ist seine Ausführung zentralisiert auf dem Server. Diese Aufgabe übernimmt die Serverumgebung (Apache) und erst nach Routinen-Antwort wird das Ergebnis als Antwort verschickt (z.B. http). PHP ist also eine Serversprache. Das ermöglich sichere Loginroutinen, da der Verschlüsselungsalgorithmus nicht vom client eingelesen werden kann.

Umfang:

PHP bietet verschiedene Routinen zur Datenbankanbindung. Diese uneinheitliche Routinensammlung wurde mit dem objektorientierten Ansatz PDO vereinheitlicht.

Besonderheit:

PHP ist schwach typisiert. Dadurch sind durch implizite Typumwandlung der Parser/Interpreter-Routinen unplausible Ergebnisse zu erwarten. Abhilfe schafft der typisierte Vergleichsoperator "===". Bei Verwendung des untypisierten Vergleichsoperators "==" kommt es immer wieder zu Fehlinterpretationen z.B. Vergleich zwischen numerischen Typen und Zeichenketten.