---
title: 'PHP 8.5 Out Now!'
slug: php-8-5-out-now
date: '2025-12-06'
author: onlime
tags: [PHP]
image: 'https://www.onlime.ch/uploads/php85-released.webp'
---

**PHP 8.5** ist veröffentlicht und bringt wieder einige praktische Neuerungen für den Entwickleralltag. Im Fokus stehen diesmal vor allem die neue **URI-Extension**, der **Pipe-Operator `|>`**, `clone()` mit direkten Property-Anpassungen sowie das neue Attribut **`#[\NoDiscard]`**. Die offiziellen [Release Notes](https://www.php.net/releases/8.5/en.php) nennen ausserdem weitere kleinere Sprachverbesserungen, neue Hilfsfunktionen und allgemeines Cleanup.

Ein grosser Dank geht wieder an Ondřej Surý, welcher unter [DEB.SURY.ORG](https://deb.sury.org/) stets die aktuellsten PHP-Packages für Debian Linux zur Verfügung stellt. Der beste Debian package maintainer ever!

PHP 8.5 wurde am **20. November 2025** veröffentlicht und am 6. Dezember durch Onlime für alle Kunden freigegeben. Sämtliche Erweiterungen, welche bisher unter PHP 8.4 verfügbar waren, stehen euch auch bereit unter PHP 8.5.

Die neue Version lässt sich in unserem neuen [Controlpanel](https://my.onlime.ch/) unter **«PHP Manager»** konfigurieren und unter **«Subdomains»** kannst du jede Subdomain resp. die Haupt-Domain (www) individuell auf PHP 8.5 upgraden.

### Neuerungen in PHP 8.5

Die wichtigsten neuen Features:

* **Neue URI-Extension** – URLs und URIs können nun sauberer und standardkonformer verarbeitet werden.

```php
use Uri\Rfc3986\Uri;

$uri = new Uri('https://www.onlime.ch/blog');
echo $uri->getHost();
```

* **Pipe-Operator `|>`** – Funktionsketten lassen sich nun deutlich lesbarer von links nach rechts schreiben.

```php
$title = ' PHP 8.5 ';
$slug = $title |> trim(...) |> strtolower(...);
```

* **`clone()` mit direkten Anpassungen** – Beim Klonen eines Objekts können Properties jetzt direkt überschrieben werden. Gerade bei `readonly`-Objekten sehr praktisch.

```php
$newUser = clone($user, [
    'name' => 'Alice',
]);
```

* **Neues `#[\NoDiscard]`-Attribut** – Hilft dabei, Rückgabewerte nicht versehentlich zu ignorieren.

```php
#[\NoDiscard]
function getToken(): string
{
    return 'abc123';
}

getToken(); // Warning: The return value of function getToken() should either be used or intentionally ignored by casting it as (void)
```

* **Closures in konstanten Ausdrücken** – Statische Closures und First-Class Callables dürfen nun auch in konstanten Ausdrücken verwendet werden, etwa in Attributen oder Default-Werten.

```php
#[Check(static fn () => true)]
class Demo {}
```

* **Neue `array_first()`- und `array_last()`-Funktionen** – Kleine, aber praktische Ergänzungen für typische Array-Zugriffe.

```php
$first = array_first($items);
$last = array_last($items);
```

* und einiges mehr... Die komplette Übersicht findet ihr wie gewohnt auf der [offiziellen Release-Seite von PHP](https://www.php.net/releases/8.5/en.php).

Für weitere Infos beachte bitte auch die offiziellen Seiten der PHP Group und unser Support-Wiki:

* [PHP 8.5 Release Announcement](https://www.php.net/releases/8.5/en.php)
* [PHP 8.5 Changelog](https://www.php.net/ChangeLog-8.php#PHP_8_5)
* [PHP 8.5 Migration Guide](https://www.php.net/manual/en/migration85.php)
* [Onlime Support-Wiki: PHP Version & Upgrade Tipps](https://support.onlime.ch/dev/php.html)

Weitere sehr empfehlenswerte Artikel:

* [stitcher.io – What's new in PHP 8.5](https://stitcher.io/blog/new-in-php-85)
* [stitcher.io – The pipe operator in PHP 8.5](https://stitcher.io/blog/pipe-operator-in-php-85)

### Breaking Changes

PHP 8.5 ist eine neue Major-Version. Das bedeutet, dass einige Änderungen enthalten sind, die mit älterem Code nicht mehr kompatibel sind. Unter anderem wurde der **Backtick-Operator** als Alias für `shell_exec()` als **deprecated** markiert. Ebenfalls deprecated sind nicht-kanonische Casts wie `(boolean)`, `(integer)` oder `(double)` – künftig sollten stattdessen `(bool)`, `(int)` und `(float)` verwendet werden. Ausserdem wurden `__sleep()` und `__wakeup()` soft-deprecated – verwende stattdessen `__serialize()` und `__unserialize()`.

Daneben gibt es weitere Deprecations und kleinere Inkompatibilitäten, die du vor dem Einsatz in Produktion testen solltest. Eine Liste mit allen Breaking Changes findest du wie gewohnt auf der [Upgrade-Seite der PHP Group](https://www.php.net/manual/en/migration85.php).

### Bereit für PHP 8.5?

Aus unserer Sicht gibt es viele gute Gründe für den Wechsel auf PHP 8.5. Die neue Version bringt nicht nur technische Verbesserungen, sondern macht den Code an mehreren Stellen auch angenehmer und moderner. Wie immer empfiehlt es sich, eigene Applikationen, Libraries und Extensions vor dem Umstieg kurz zu testen.

Du kannst ganz einfach testen, ob deine Website lauffähig ist unter dieser neuen Version. Im [Controlpanel](https://my.onlime.ch/) unter **«Subdomains»** kannst du die PHP-Version jederzeit up- resp. downgraden.
