die erste Betaversion des neuen Zweigs der Programmiersprache PHP 8. Der Release ist für den 26. November geplant. Gleichzeitig wurden Korrekturversionen für PHP 7.4.9, 7.3.21 und
7.2.33 veröffentlicht, in denen angesammelte Fehler und Sicherheitslücken behoben wurden.
Haupt- PHP 8:
- , dessen Anwendung die Leistung steigern wird.
- benannter Funktionsargumente, die das Übergeben von Werten an die Funktion basierend auf Namen ermöglichen, d.h. Argumente können in beliebiger Reihenfolge übergeben und optionale Argumente definiert werden. Zum Beispiel: „array_fill(start_index: 0, num: 100, value: 50)“.
- Beim Aufruf von Methoden des Operators „?“ erlaubt, der den Aufruf nur initiiert, wenn die Methode vorhanden ist, wodurch überflüssige Nullwertprüfungen vermieden werden können. Zum Beispiel: „$dateAsString = $booking->getStartDate()?->asDateTimeString()“;
- Bestellen , die Sammlungen aus zwei oder mehr Typen definieren (zum Beispiel „public function foo(Foo|Bar $input): int|float;“).
- Bestellen (Anmerkungen), die es ermöglichen, Metadaten (zum Beispiel Typinformationen) an Klassen zu binden, ohne die Syntax von Docblock zu verwenden.
- Unterstützung von Ausdrücken , die im Gegensatz zu switch Werte zurückgeben können, die Kombination von Bedingungen unterstützen, strenge Typvergleiche verwenden und keine „break“-Anweisung erfordern.
$result = match($input) {
0 => „hello“,
‘1’, ‘2’, ‘3’ => „world“,
}; - für die Definition von Klassen, die es ermöglicht, die Definition des Konstruktors und der Eigenschaften zu kombinieren.
- Ein neuer Rückgabetyp — .
- Ein neuer Typ — , der verwendet werden kann, um die Annahme von Argumenten mit unterschiedlichen Typen in einer Funktion zu definieren.
- Ausdruck zur Behandlung von Ausnahmen.
- zur Erstellung von Objekten, die bei der Müllabfuhr aufgegeben werden können (zum Beispiel zur Speicherung optionaler Caches).
- das Ausdruck „::class“ für Objekte zu verwenden (analog zu get_class()).
- Definitionen in einem catch-Block von Ausnahmen, die nicht an Variablen gebunden sind.
- das Setzen eines Kommas nach dem letzten Element in der Parameterliste einer Funktion.
- Ein neuer Schnittstelle zur Identifizierung beliebiger String-Typen oder Daten, die in eine Zeichenkette umgewandelt werden können (für die die Methode __toString() verfügbar ist).
- Eine neue Funktion , ein vereinfachter Analog zu strpos zur Bestimmung des Auftretens eines Teilstrings sowie die Funktionen str_starts_with() und str_ends_with() zur Überprüfung von Übereinstimmungen am Anfang und Ende der Zeichenfolge.
- Eine Funktion wurde hinzugefügt , die die Division durchführt, ohne einen Fehler bei der Division durch Null zu erzeugen.
- die Logik der Zeichenkettenverknüpfung. Zum Beispiel wurde der Ausdruck ‘echo «sum: » . $a + $b’ zuvor als ‘echo («sum: » . $a) + $b’ interpretiert, während er in PHP 8 als ‘echo «sum: » . ($a + $b)’ verarbeitet wird.
- die Überprüfung arithmetischer und bitweiser Operationen, zum Beispiel führen die Ausdrücke «[] % [42]» und «$object + 4» zu einem Fehler.
- stabiler Sortieralgorithmus, bei dem die Reihenfolge gleicher Werte bei verschiedenen Durchläufen erhalten bleibt.
Quelle: opennet.ru
