In diesem Teil des PHP Tutorials behandeln wir die Grundlagen von PHP. Dabei möchte ich die Frage klären, was PHP überhaupt ist.
Die Websprache PHP
PHP ist ein rekursives Akronym für „PHP: Hypertext Preprocessor“ und stand ursprünglich für „Personal Homepage Tools“. Beide Namen verdeutlichen recht gut, was PHP eigentlich macht und leisten kann.
Es eignet sich für diverse Homepage Tools und übernimmt die Aufgabe PHP-Skripte zu parsen. Aufgrund zahlreicher Funktionen und integrierter Bibliotheken (Dateien, XML, Datenbanken etc.) ist die freie Software sehr beliebt, um dynamische Inhalte ausliefern zu können.
Doch fangen wir einmal bei den Wurzeln an: Was passiert wenn Du eine Seite im Webbrowser aufrufst?
Zunächst wird dein Gerät einen DNS-Server kontaktieren, um die IP-Adresse zu erfahren. Anschließend sendet der Server eine entsprechende Anfrage an den Webserver und fordert die Seiteninhalte an.
In unserem Beispiel geschieht das als normaler HTTP Request. Dafür wird der Standard-Port, also quasi die Tür auf dem Webserver, 80 verwendet.
Auf diesem Webserver ist eine spezielle Software installiert. Das kann zum Beispiel Apache sein.
Apache überwacht einige Ports, darunter auch den Port 80. Sobald diese Anfrage ankommt, wird Apache sie analysieren und dabei auch Dateien wie die .htaccess berücksichtigen. In diesem Fall soll Apache die Inhalte einer PHP-Datei ausliefern.
Mit der PHP-Datei, wie Du sie später erstellen wirst, kann Apache selber aber nichts anfangen. Die Software PHP ist daher ebenfalls auf dem Server installiert, wandelt diese Datei in ein passendes Format um und führt sie anschließend aus.
Der Benutzer erhält aber nicht nur den HTML-Quelltext einer Seite, sondern auch einen Header. Über diesen Header, der auch von PHP beeinflusst werden kann, können beispielsweise Cookies gespeichert werden.
All diese Daten sendet Apache dann zurück an den Benutzer, der zuvor seine IP-Adresse mitgeteilt hat.
An diesem Beispiel kannst Du recht gut sehen, was PHP genau ist und macht. Es ist eine eigene Skriptsprache, die eng mit Serversoftware, also zum Beispiel Apache, zusammenarbeitet. Außerdem bietet sie dem Benutzer viele Möglichkeiten, auf die in einer für den Mensch verständlichen Sprache zurückgegriffen werden kann.
Hier ein ganz simpler Code:
<?php
$a = 5;
$b = 8;
echo $a."+".$b."=".($a + $b);
?>
Dieser wurde zu der Ausgabe „5+8=13“ führen. Der Code, wie er vom PHP-Interpreter (also der PHP-Software) erzeugt wird, ist hingegen bei Weitem nicht so einfach zu verstehen.
PHP ist keine Programmiersprache
Ich sprach in den Absätzen zuvor immer von PHP als einer Skriptsprache und das aus einem guten Grund. Denn PHP ist keine Programmiersprache wie etwa C++.
Angelehnt an die Wikipedia-Definition erfüllt PHP unter anderem folgende Merkmale, die nicht zu einer Programmiersprache passen:
- PHP kümmert sich selbst um die Speicherverwaltung und leert den benötigen Speicher mit dem Ende des Skripts.
- Dynamische Typisierung: So erkennt PHP etwa selbst den Typ einer Variablen, dieser kann sich auch ändern (etwa vom Typ int zum Typ string (Ganzzahl -> Text)).
- PHP verfügt über einen Interpreter, der den Code des Benutzers interpretiert und ihn anschließend ausführt. Es entsteht in dieser Phase also kein klassisches „Programm“.
Die Entwickler von PHP haben sich dafür bei der Syntax etwas von den Programmiersprachen abgeschaut. Diese ist nämlich der von C und Perl recht ähnlich.
Ein Nachteil von PHP ist also, dass Du damit keine Programme im herkömmlichen Sinne schreiben kannst. Denn dein PHP-Quelltext wird immer erst in dem Moment übersetzt, indem die Datei vom Webserver angefragt wird.
Dafür eignet es sich hervorragend, um dynamische Webanwendungen zu realisieren. Denn PHP kann auch mit anderen Komponenten, etwa MySQL-Datenbanken, gut zusammenarbeiten, ermöglicht auch das objektorientierte Arbeiten (OOP) und wird von Webserver-Software wie Apache, nginx & Co. gut unterstützt.
In dem zweiten Teil dieser Serie bringe ich Dir einige Grundlagen in PHP bei und zeige Dir, wie du mit Fehlermeldungen umgehen kannst.
5 Gedanken zu „1. Was ist PHP?“