PHP 7.3.0 veröffentlicht

Wie vom PHP-Release-Team versprochen, wurde PHP 7.3.0 pünktlich zum Nikolaustag als schönes Geschenk veröffentlicht. Ich habe die Release Candidates mit Neos und Flow in den letzten paar Wochen getestet. Wie ist es gelaufen?

Was ist neu in PHP 7.3?

Die neuen Funktionen werden dich wahrscheinlich nicht aus den Socken hauen. Aber allein die Tatsache, dass es dem PHP-Team gelungen ist, einen konstanten (und viel häufigeren) Veröffentlichungszyklus beizubehalten, ist ein Grund zum Feiern. Es zeigt auf jeden Fall, dass PHP wieder an Fahrt gewonnen hat und dass du mit neuen Versionen planen kannst.

Was die eigentlichen Änderungen angeht, so möchte ich ein paar davon hervorheben:

Unterstützung von Referenzen in list()

Mit der guten alten list() -Funktion kannst du Variablen aus einem bestimmten Array zuweisen. Das ist praktisch, wenn du z. B. mehrere Rückgabewerte aus einem Funktionsaufruf übergeben musst. Neu in PHP 7.3 ist, dass die in list() verwendeten Variablen per Referenz zugewiesen werden können.

Stell dir das vor:

$array = ['PHP 5.6', 'PHP 7.0'];
list(&$a, $b) = $array;
$a = 'PHP 7.3';
echo $array[0];

Eine tolle Möglichkeit, PHP 5.6 loszuwerden, oder?

Veraltet: Groß- und Kleinschreibung bei Konstanten-Namen

Wusstest du, dass define() einen dritten Parameter hat? Wenn du ihn auf true setzt, kannst du angeben, dass der Name der Konstante, die du deklarierst, die Groß- und Kleinschreibung nicht berücksichtigt. Während bei der Deklaration von Konstanten mit dem Schlüsselwort const die Groß- und Kleinschreibung nicht beachtet wird, wurde bei define() standardmäßig die Groß- und Kleinschreibung beachtet. Seit PHP 7.3 erhältst du eine Warnung, wenn du versuchst, die Konstante mit einem anderen als dem ursprünglich definierten Namen aufzurufen.

JsonException

Die Arbeit mit den ursprünglichen JSON-Funktionen in PHP war ein wenig fehleranfällig. Denn wenn etwas schief ging, waren diese Funktionen ziemlich still.

Ab PHP 7.3 können json_encode() und json_decode() jetzt eine Ausnahme auslösen:

try {
  json_decode("🍌", false, 512, JSON_THROW_ON_ERROR);
}
catch (\JsonException $exception) {
  echo $exception->getMessage(); # Will display "syntax error". 🚀
}

array_key_first() und array_key_last()

Vielleicht hast du dir schon mal gedacht: "Wenn PHP doch nur mehr Array-Funktionen hätte!". Aber auch wenn es schon viele davon gibt, denke ich, dass diese beiden Ergänzungen sehr nützlich sein werden.

Wie der Name schon sagt, kannst du mit diesen Funktionen den ersten bzw. den letzten Schlüssel eines Arrays abrufen. Das Schöne daran ist, dass du bei anderen Array-Funktionen, die du für diese Aufgabe verwenden kannst, das Array als Referenz übergeben musst. Nicht so bei array_key_first() und array_key_last()!

Neos auf PHP 7.3 laufen lassen

Kannst du es kaum erwarten, PHP 7.3.0 mit Neos auszuprobieren? Soweit ich das beurteilen kann, funktioniert es wirklich gut - es sind keine Anpassungen nötig. Tatsächlich läuft diese Website bereits mit der neuen Version!

Läuft dein Hoster noch mit einer veralteten PHP-Version? Vielleicht sogar 5.6? Dann ist es an der Zeit, sich einen neuen zu suchen. Und wenn du ein Zuhause für eine Neos Website oder Flow Anwendung brauchst, wusstest du, dass wir eine Cloud-Plattform entwickelt haben, die perfekt für dein Lieblings-CMS geeignet ist? Probiere es einfach aus, wir würden uns freuen, dich auf der Beach begrüßen zu dürfen!