Testimi beta i PHP 8 ka filluar

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

Kryesore risitë PHP 8:

  • përfshirje Përpiluesi JIT, përdorimi i të cilave do të përmirësojë produktivitetin.
  • Mbështetje именованных аргументов функций, позволяющих передававать в функцию значения в привязке к именам, т.е. можно передавать аргументы в произвольном порядке и определять необязательные аргументы. Например, «array_fill(start_index: 0, num: 100, value: 50)».
  • При вызове методов lejohet применение оператора «?», который позволяет инициировать вызов только, если метод присутствует, что позволяет избежать лишних проверок на возврат значения «null». Например, «$dateAsString = $booking->getStartDate()?->asDateTimeString()»;
  • Mbështetje llojet e bashkimit, duke përcaktuar koleksionet e dy ose më shumë llojeve (për shembull, "funksioni publik foo(Foo|Bar $input): int|float;").
  • Mbështetje atributet (shënime) që ju lejojnë të lidhni meta të dhënat (siç janë informacionet e tipit) me klasat pa përdorur sintaksë Docblock.
  • Поддержка выражений ndeshje, которые в отличие от switch могут возвращать значения, поддерживают комбинирование условий, используют строгое сравнение типов и не требуют указания «break».

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

  • Sintaksë e shkurtuar përkufizimet e klasave, duke ju lejuar të kombinoni përkufizimin e një konstruktori dhe vetitë.
  • Lloji i ri i kthimit - i pandryshueshëm.
  • Lloji i ri - i përzier, i cili mund të përdoret për të përcaktuar nëse një funksion pranon parametra të llojeve të ndryshme.
  • shprehje hedh për të trajtuar përjashtimet.
  • Harta e dobët për të krijuar objekte që mund të sakrifikohen gjatë mbledhjes së mbeturinave (për shembull, për të ruajtur memoriet e panevojshme).
  • mundësi duke përdorur shprehjen “::class” për objektet (analoge me thirrjen get_class()).
  • mundësi përkufizimet në bllokun e kapjes së përjashtimeve që nuk janë të lidhura me variabla.
  • mundësi duke lënë presje pas elementit të fundit në listën e parametrave të funksionit.
  • Ndërfaqe e re Stringable për të identifikuar çdo lloj vargu ose të dhëna që mund të konvertohen në një varg (për të cilin metoda __toString() është e disponueshme).
  • Veçori e re str_contains(), një analog i thjeshtuar i strpos për përcaktimin e shfaqjes së një nënvargu, si dhe funksionet str_starts_with() dhe str_ends_with() për kontrollimin e përputhjeve në fillim dhe në fund të një vargu.
  • Funksioni i shtuar fdiv (), i cili kryen një operacion ndarjeje pa hedhur gabim kur pjesëtohet me zero.
  • Ndryshuar logjika e bashkimit të vargut. Për shembull, shprehja 'jehonë "shuma:" . $a + $b' u interpretua më parë si 'echo ("sum: " . $a) + $b', dhe në PHP 8 do të trajtohet si "echo "sum: ". ($a + $b)'.
  • Shtrënguar kontrollimi i operacioneve aritmetike dhe bit, për shembull, shprehjet "[] % [42]" dhe "$object + 4" do të rezultojnë në një gabim.
  • Zbatuar një algoritëm i qëndrueshëm i renditjes në të cilin rendi i vlerave identike ruhet në drejtime të ndryshme.
  • Burimi: opennet.ru

Shto një koment