PHP - Geschichte

Hallo da draußen, angehende Programmierer! Heute machen wir uns auf eine faszinierende Reise durch die Geschichte von PHP, einer der beliebtesten serverseitigen Skriptsprachen. Als dein freundlicherNachbarschaftsinformatiklehrer bin ich aufgeregt, dich durch dieses Abenteuer zu führen. Also, holt euch eure virtuellen Zeitmaschinen und taucht ein!

PHP - History

Die Geburt von PHP

PHP, ursprünglich als "Personal Home Page" bekannt, wurde 1994 von Rasmus Lerdorf erstellt. Stellt euch vor, die Welt des Internets war noch in den Kinderschuhen und Lerdorf wollte nur festhalten, wer sein Online-Lebenslauf ansah. Kaum ahnte er, dass seine einfache Erfindung sich in eine Kraftmaschine der Webentwicklung entwickeln würde!

PHP/FI

Im Jahr 1995 veröffentlichte Lerdorf den Quellcode für PHP Tools, der als PHP/FI (Personal Home Page / Forms Interpreter) bekannt wurde. Diese frühe Version ermöglichte es Entwicklern, strukturierte Abfragesprachen (SQL)-Abfragen in HTML-Seiten einzubetten. Es war, als hätten statische Webseiten Superkräfte bekommen!

PHP 3

Springen wir vorwärts zum Jahr 1998, als PHP 3 auf den Markt kam. Dies war eine vollständige Neuschreibung der Sprache durch Andi Gutmans und Zeev Suraski. Sie verwandelten PHP in eine robustere Sprache, die mit Microsofts ASP konkurrieren konnte. In dieser Zeit änderte sich die Bedeutung von PHP zu dem rekursiven Akronym "PHP: Hypertext Preprocessor."

PHP 4

Im Jahr 2000 wurde PHP 4 veröffentlicht und brachte eine Reihe neuer Funktionen und Verbesserungen mit sich. Eine der wichtigsten Neuerungen war der Zend Engine, der die Leistung von PHP erheblich verbesserte. Es war, als wäre man von einem Fahrrad auf ein Sportauto umgestiegen!

PHP 5

PHP 5, das 2004 veröffentlicht wurde, war ein Game-Changer. Es führte objektorientierte Programmiermerkmale (OOP) ein, die PHP zu einem ernsthaften Konkurrenten in der Welt der Webentwicklung machten. Sehen wir uns ein einfaches Beispiel von OOP in PHP 5 an:

<?php
class Auto {
public $farbe;

public function __construct($farbe) {
$this->farbe = $farbe;
}

public function getFarbe() {
return $this->farbe;
}
}

$meinAuto = new Auto("rot");
echo "Mein Auto ist " . $meinAuto->getFarbe();
?>

In diesem Beispiel definieren wir eine Auto-Klasse mit einer farbe-Eigenschaft und Methoden, um die Farbe zu setzen und abzurufen. Wir erstellen dann ein neues Auto-Objekt und geben seine Farbe aus. Diese objektorientierte Herangehensweise machte den Code organisierter und wiederverwendbarer.

PHP 6

Nun, hier ist ein kleiner PHP-Trick: PHP 6 hat tatsächlich nie das Licht der Welt erblickt! Es wurde geplant,.native Unicode-Unterstützung zu enthalten, aber aufgrund verschiedener Komplikationen wurde das Projekt aufgegeben. Stattdessen wurden viele seiner Funktionen in PHP 5.3 und spätere Versionen integriert.

PHP 7

PHP 7, das 2015 veröffentlicht wurde, war ein bedeutendes Ereignis. Es brachte erhebliche Leistungsoptimierungen und neue Funktionen mit sich. Eine der wichtigsten Neuerungen war der spaceship-Operator (<=>) zum Vergleichen von Werten. So funktioniert es:

<?php
// Spaceship-Operator Beispiel
$a = 5;
$b = 10;

$ergebnis = $a <=> $b;

if ($ergebnis === -1) {
echo "$a ist kleiner als $b";
} elseif ($ergebnis === 0) {
echo "$a ist gleich $b";
} else {
echo "$a ist größer als $b";
}
?>

Dieser Operator gibt -1 zurück, wenn das linkeOperanden kleiner ist als das rechte, 0, wenn sie gleich sind, und 1, wenn das linke größer ist. Es ist, als hätte man ein kleines Raumschiff, das zwischen Werten navigiert!

Neue Funktionen in PHP 8

Und nun erreichen wir die Gegenwart mit PHP 8, das 2020 veröffentlicht wurde. Diese Version führte einige aufregende neue Funktionen ein, die PHP noch leistungsfähiger und benutzerfreundlicher machen.

JIT-Compiler

Eine der wichtigsten Neuerungen in PHP 8 ist der Just-In-Time (JIT)-Compiler. Denkt daran als einen Turbocharger für euren PHP-Code, der diesen schneller als je zuvor ausführt!

Unionstypen

PHP 8 führte Unionstypen ein, die es Entwicklern ermöglichen, mehrere mögliche Typen für einen einzelnen Parameter oder Rückgabewert anzugeben. Hier ist ein Beispiel:

<?php
function verarbeiteEingabe(int|float $nummer): int|float {
if ($nummer > 100) {
return $nummer * 2;
}
return $nummer;
}

echo verarbeiteEingabe(50);  // Ausgabe: 50
echo verarbeiteEingabe(150.5);  // Ausgabe: 301
?>

In diesem Beispiel kann die verarbeiteEingabe-Funktion entweder eine Ganzzahl oder eine Fließkommazahl akzeptieren und gibt ebenfalls entweder Typ zurück. Diese Flexibilität macht unseren Code ausdrucksreicher und typsicherer.

Benannte Argumente

Benannte Argumente sind eine andere großartige Ergänzung in PHP 8. Sie erlauben es, anzugeben, welchem Parameter ihr einen Wert übergebt, was den Code lesbarer und flexibler macht. Sehen wir uns ein Beispiel an:

<?php
function createUser($name, $email, $age = null) {
echo "Name: $name, Email: $email, Age: $age";
}

createUser(name: "John Doe", email: "[email protected]", age: 30);
createUser(email: "[email protected]", name: "Jane Smith");
?>

In diesem Beispiel können wir die createUser-Funktion mit benannten Argumenten in beliebiger Reihenfolge aufrufen und optionalen Parameter weglassen.

PHP 8 - Typänderungen und Ergänzungen

PHP 8 brachte auch einige wichtige Änderungen und Ergänzungen zum Typensystem.

Mixed-Typ

Der mixed-Typ wurde eingeführt, um anzuzeigen, dass ein Parameter oder Rückgabewert einen beliebigen Typ haben kann. Es ist wie ein Joker für Typen!

<?php
function verarbeiteAlles(mixed $daten): mixed {
if (is_string($daten)) {
return strtoupper($daten);
} elseif (is_int($daten)) {
return $daten * 2;
}
return $daten;
}

echo verarbeiteAlles("hello");  // Ausgabe: HELLO
echo verarbeiteAlles(5);  // Ausgabe: 10
?>

Striktere Typprüfung

PHP 8 führte auch eine striktere Typprüfung ein. Zum Beispiel wird das Übergeben von null an eine Funktion, die einen bestimmten Typ erwartet, jetzt einen Fehler werfen,除非参数被明确标记为可空。

<?php
function grüße(string $name) {
echo "Hallo, $name!";
}

grüße("John");  // Funktioniert einwandfrei
grüße(null);  // Wirft einen TypeError

function grüßeNullable(?string $name) {
echo "Hallo, " . ($name ?? "Fremder") . "!";
}

grüßeNullable("Jane");  // Funktioniert einwandfrei
grüßeNullable(null);  // Funktioniert ebenfalls, Ausgabe: Hallo, Fremder!
?>

In diesem Beispiel wirft die erste grüße-Funktion einen Fehler, wenn null übergeben wird, während die zweite grüßeNullable-Funktion null-Werte akzeptiert.

Um alle 方法 wir haben besprochen, hier ist eine praktische Tabelle:

PHP-Version Schlüsselmerkmale
PHP/FI SQL-Abfragen in HTML
PHP 3 Vollständige Neuschreibung, neuer Name
PHP 4 Zend Engine
PHP 5 Objektorientierte Programmierung
PHP 7 Leistungsoptimierungen, spaceship-Operator
PHP 8 JIT-Compiler, Unionstypen, benannte Argumente, mixed-Typ

Und das war's, Leute! Wir haben die Geschichte von PHP durchlaufen, von seinen bescheidenen Anfängen bis zu seiner aktuellen leistungsstarken Form. Denkt daran, dass jede Zeile Code, die ihr schreibt, Teil dieser fortlaufenden Geschichte ist. Also, geht mutig voran, codet mutig und möge eure PHP-Abenteuer frei von Bugs und voller Erfolg sein!

Credits: Image by storyset