Brauchst du einen Experten, der dir bei deinem Symfony- oder PHP-Entwicklungsprojekt hilft? Fordere jetzt ein Angebot an


Was ist neu in PHP 8.5: Ein umfassender Überblick

· Oskar Stark · 2 Minuten zum Lesen
PHP 8.5

PHP 8.5 wird im November 2025 veröffentlicht und bringt mehrere nützliche neue Features und Verbesserungen mit sich. Diese Version konzentriert sich auf die Verbesserung der Developer Experience, neue Utility-Funktionen und bessere Debugging-Möglichkeiten.

Die wichtigsten neuen Features im Überblick

1. Neue Array-Funktionen: array_first() und array_last()

PHP 8.5 fügt zwei lang erwartete Funktionen hinzu, um den ersten und letzten Wert eines Arrays abzurufen. Sie ergänzen die bereits existierenden array_key_first() und array_key_last() Funktionen aus PHP 7.3.

$users = ['Alice', 'Bob', 'Charlie'];

$firstUser = array_first($users);  // 'Alice'
$lastUser = array_last($users);    // 'Charlie'

// Funktioniert auch mit assoziativen Arrays
$data = ['name' => 'John', 'age' => 30, 'city' => 'Berlin'];
echo array_first($data); // 'John'
echo array_last($data);  // 'Berlin'

// Gibt null für leere Arrays zurück
$empty = [];
var_dump(array_first($empty)); // null
var_dump(array_last($empty));  // null

Diese Funktionen entsprechen:

  • array_first($array)$array[array_key_first($array)]

  • array_last($array)$array[array_key_last($array)]

Mehr Details: PHP.Watch - array_first() und array_last()

2. Pipe Operator (|>)

PHP 8.5 führt einen neuen Pipe Operator (|>) ein, der es ermöglicht, mehrere Callables von links nach rechts zu verketten und dabei den Rückgabewert des linken Callables an das rechte weiterzugeben:

$result = 'Hello World'
    |> strtoupper(...)
    |> str_shuffle(...)
    |> trim(...);
// Ausgabe: 'LWHO LDLROE' (oder ähnliches gemischtes Ergebnis)

// Entspricht verschachtelten Aufrufen:
$result = trim(str_shuffle(strtoupper('Hello World')));

// Oder mit Variablen:
$result = 'Hello World';
$result = strtoupper($result);
$result = str_shuffle($result);
$result = trim($result);

Der Pipe Operator funktioniert mit allen Callables - Funktionen, Methoden, Closures und First-Class Callables. Er hat jedoch einige Einschränkungen:

  • Alle Callables müssen nur einen erforderlichen Parameter akzeptieren

  • Funktionen mit By-Reference-Parametern können nicht verwendet werden (mit wenigen Ausnahmen)

  • Der Rückgabewert wird immer als erster Parameter übergeben

Mehr Details: PHP.Watch - Pipe Operator

3. Neue Error- und Exception-Handler Getter

PHP 8.5 führt zwei neue Funktionen ein, die es ermöglichen, die aktuell aktiven Error- und Exception-Handler abzurufen: get_error_handler() und get_exception_handler().

Dies ist besonders nützlich für:

  • Framework-Entwicklung und Handler-Verkettung

  • Debugging von Error-Handling-Konfigurationen

  • Temporäres Überschreiben von Handlern unter Beibehaltung der ursprünglichen

Beide Funktionen geben das aktuelle Handler-Callable zurück oder null, wenn kein benutzerdefinierter Handler gesetzt ist.

Mehr Details: PHP.Watch - get_error_handler() und get_exception_handler()

4. Neue cURL-Funktion: curl_multi_get_handles()

Die cURL-Extension erhält eine neue Funktion zum Abrufen aller Handles von einem Multi-Handle:

$multiHandle = curl_multi_init();

$ch1 = curl_init('https://api.example.com/users');
$ch2 = curl_init('https://api.example.com/posts');

curl_multi_add_handle($multiHandle, $ch1);
curl_multi_add_handle($multiHandle, $ch2);

// Neu in PHP 8.5: Alle Handles abrufen
$handles = curl_multi_get_handles($multiHandle);
// Gibt zurück: [$ch1, $ch2]

// Ausführen und Ergebnisse verarbeiten
$running = null;
do {
    curl_multi_exec($multiHandle, $running);
} while ($running > 0);

foreach ($handles as $handle) {
    $response = curl_multi_getcontent($handle);
    curl_multi_remove_handle($multiHandle, $handle);
}

Mehr Details: PHP.Watch - curl_multi_get_handles()

5. Neue Locale-Funktion: locale_is_right_to_left()

PHP 8.5 fügt Unterstützung für die Erkennung von Right-to-Left (RTL) Locales hinzu und verbessert damit die Internationalisierungskapazitäten:

// Prüfen, ob Locale RTL-Schrift verwendet
$isRTL = locale_is_right_to_left('ar_SA'); // true (Arabisch)
$isLTR = locale_is_right_to_left('en_US'); // false (Englisch)
$isFarsi = locale_is_right_to_left('fa_IR'); // true (Persisch/Farsi)

// Objektorientierter Ansatz
$isRTL = Locale::isRightToLeft('he_IL'); // true (Hebräisch)

Dies ist besonders nützlich für:

  • Entwicklung mehrsprachiger Webanwendungen

  • Korrekte Textausrichtung in Benutzeroberflächen

  • Dynamische CSS-Klassen-Zuweisung basierend auf Locale

Mehr Details: PHP.Watch - locale_is_right_to_left()

6. Neue PHP_BUILD_DATE Konstante

Eine neue Konstante stellt das Build-Datum der PHP-Binary zur Verfügung, nützlich für Debugging und Versions-Auditing:

echo PHP_BUILD_DATE; // z.B., 'Nov 15 2025 10:30:45'

// Nützlich für Debugging in der Produktion
echo 'PHP Version: ' . PHP_VERSION . "\n";
echo 'Build Date: ' . PHP_BUILD_DATE . "\n";

Mehr Details: PHP.Watch - PHP_BUILD_DATE

7. CLI-Verbesserung: php --ini=diff

Eine neue CLI-Option zur Ausgabe nur der nicht-standardmäßigen INI-Direktiven:

# Zeige nur geänderte Einstellungen
php --ini=diff

# Beispiel-Ausgabe:
# memory_limit = 256M (default: 128M)
# max_execution_time = 60 (default: 30)

Mehr Details: PHP.Watch - CLI --ini=diff

Warum auf PHP 8.5 upgraden?

Verbesserte Developer Experience: Die neuen Array-Funktionen eliminieren häufigen Boilerplate-Code und machen Absichten klarer.

Besseres Debugging: Die neuen Handler-Getter bieten bessere Einblicke in das Anwendungsverhalten.

Verbesserte Tools: Die neue CLI-Option und Build-Date-Konstante helfen beim Debugging und Deployment-Tracking.

Zukunftssicherheit: Bleibe auf dem neuesten Stand mit den aktuellsten PHP-Features und Sicherheitsupdates.

Fazit

PHP 8.5 mag keine bahnbrechenden Sprachänderungen einführen, aber es liefert praktische Verbesserungen, die tägliche Entwicklungsworkflows verbessern. Die neuen Array-Funktionen adressieren lang bestehende Entwicklerwünsche, während der Pipe Operator eine sauberere Art bietet, Funktionsaufrufe zu verketten.

Das Upgrade von PHP 8.4 auf 8.5 sollte für die meisten Anwendungen unkompliziert sein, wobei die neuen Features sofortigen Nutzen bieten, ohne bestehenden Code zu brechen.

Upgrade-Empfehlung: Wenn du bereits PHP 8.4 verwendest, ist ein Upgrade auf PHP 8.5 empfehlenswert. Die neuen Features verbessern Code-Qualität und Debugging-Fähigkeiten mit minimalem Migrationsaufwand.

Bereit für das Upgrade auf PHP 8.5?

Unser Team ist spezialisiert auf Symfony und PHP-Entwicklung und hilft Unternehmen bei der reibungslosen Migration und optimalen Nutzung der neuesten Features. Kontaktiere uns, um deine PHP 8.5 Migrationsstrategie zu besprechen.

Image