Beta Testen vu PHP 8 huet ugefaang

Agefouert первый бета-выпуск новой ветки языка программирования PHP 8. Релиз намечен на 26 ноября. Одновременно сформированы корректирующие выпуски PHP 7.4.9, 7.3.21 и
7.2.33, в которых устранены накопившиеся ошибки и уязвимости.

Haaptstrooss Innovatiounen PHP 8:

  • Dréit op JIT Compiler, de Gebrauch vun deem wäert d'Produktivitéit verbesseren.
  • Ënnerstëtzung именованных аргументов функций, позволяющих передававать в функцию значения в привязке к именам, т.е. можно передавать аргументы в произвольном порядке и определять необязательные аргументы. Например, «array_fill(start_index: 0, num: 100, value: 50)».
  • При вызове методов erlaabt применение оператора «?», который позволяет инициировать вызов только, если метод присутствует, что позволяет избежать лишних проверок на возврат значения «null». Например, «$dateAsString = $booking->getStartDate()?->asDateTimeString()»;
  • Ënnerstëtzung Gewerkschaft Zorte, Sammlungen vun zwou oder méi Typen definéieren (zum Beispill "ëffentlech Funktioun foo(Foo|Bar $input): int|float;").
  • Ënnerstëtzung Attributer (Annotatiounen) déi Iech erlaben Metadaten (wéi Typinformatioun) u Klassen ze binden ouni Docblock Syntax ze benotzen.
  • Поддержка выражений Match spillen, которые в отличие от switch могут возвращать значения, поддерживают комбинирование условий, используют строгое сравнение типов и не требуют указания «break».

    $result = match($input) {
    0 => «hello»,
    ‘1’, ‘2’, ‘3’ => «world»,
    };

  • Verkierzt Syntax Klass Definitiounen, erlaabt Iech d'Definitioun vun engem Konstruktor an Eegeschaften ze kombinéieren.
  • Neie Retour Typ - Statesch ass.
  • Neien Typ - gemëscht ginn, déi benotzt ka ginn fir ze bestëmmen ob eng Funktioun Parametere vu verschiddenen Typen acceptéiert.
  • Ausdrock ze geheien Ausnahmen ze handhaben.
  • WeakMap fir Objeten ze kreéieren déi während der Müllsammlung geaffert kënne ginn (zum Beispill fir onnéideg Cache ze späicheren).
  • Geleeënheet benotzt den Ausdrock "::class" fir Objeten (analog zum Opruff get_class ()).
  • Geleeënheet Definitiounen am Fangblock vun Ausnahmen déi net un Variablen gebonnen sinn.
  • Geleeënheet e Komma hannert dem leschten Element an der Lëscht vun de Funktiounsparameter hannerloossen.
  • Neien Interface Stringable fir all Stringtypen oder Daten z'identifizéieren déi an eng String ëmgewandelt kënne ginn (fir déi d'Method __toString () verfügbar ass).
  • Nei Feature str_contains(), e vereinfachte Analog vu strpos fir d'Optriede vun enger Substring ze bestëmmen, souwéi d'Funktiounen str_starts_with() an str_ends_with() fir d'Matcher um Ufank an Enn vun enger String ze kontrolléieren.
  • Zousätzlech Funktioun fdiv(), déi eng Divisiounsoperatioun ausféiert ouni e Feeler ze werfen wann se mat Null deelen.
  • Geännert String verbonne Logik. Zum Beispill, den Ausdrock 'Echo "sum:" . $a + $b' gouf virdru als 'Echo ("Zomm: " . $a) + $b' interpretéiert, an am PHP 8 gëtt als 'Echo "sum: " behandelt. ($a + $b)'.
  • Gestrach iwwerpréift arithmetesch a Bit Operatiounen, zum Beispill, d'Ausdréck "[] % [42]" an "$Objet + 4" wäert zu engem Feeler Resultat.
  • Ëmgesat e stabile Sortimentalgorithmus an deem d'Uerdnung vun identesche Wäerter iwwer verschidde Runen erhale bleift.
  • Source: opennet.ru

Setzt e Commentaire