Början av betatestning av PHP 8

Presenteras den första betaversionen av den nya versionen av programmeringssprÄket PHP 8. Utgivningen Àr planerad till den 26 november. Samtidigt har korrigerande versioner av PHP 7.4.9, 7.3.21 och
7.2.33, dÀr ackumulerade fel och sÄrbarheter har ÄtgÀrdats.

Huvud nyheter PHP 8:

  • Aktivering JIT-kompilatorn, vars anvĂ€ndning kommer att öka prestandan.
  • Support namngivna funktionsargument, som möjliggör överföring av vĂ€rden till funktionen kopplade till namn, dvs. argument kan överföras i godtycklig ordning och valfria argument kan definieras. Till exempel, "array_fill(start_index: 0, num: 100, value: 50)".
  • Vid anrop av metoder Ă€r anvĂ€ndning av operatorn "?" tillĂ„ten, vilket gör det möjligt att initiera anropet endast om metoden finns, vilket kan undvika onödiga kontroller för att returnera vĂ€rdet "null". Till exempel, "$dateAsString = $booking->getStartDate()?->asDateTimeString()";
  • Support union-typer, som definierar samlingar av tvĂ„ eller fler typer (t.ex. "public function foo(Foo|Bar $input): int|float;" ).
  • Support attribut (anteckningar), som gör det möjligt att koppla metadata (t.ex. typinformation) till klasser utan att anvĂ€nda Docblock-syntax.
  • Stöd för uttryck match, som, till skillnad frĂ„n switch, kan returnera vĂ€rden, stödjer kombination av villkor, anvĂ€nder strikt typjĂ€mförelse och krĂ€ver inte angivande av "break".

    $result = match($input) {
    0 => "hello",
    '1', '2', '3' => "world",
    };

  • Förkortad syntax för klassdefinitioner, vilket gör det möjligt att kombinera definitionerna av konstruktorer och egenskaper.
  • Nytt returvĂ€rdestyp — statisk.
  • Ny typ — mixed, som kan anvĂ€ndas för att definiera en funktion som tar emot parametrar med olika typer.
  • Uttrycket throw för hantering av undantag.
  • WeakMap för att skapa objekt som kan slĂ€ppas vid skrĂ€pinsamling (t.ex. för att lagra valfria cacher).
  • Möjlighet anvĂ€ndning av uttrycket "::class" för objekt (motsvarande anropet get_class()).
  • Möjlighet definitioner i catch-blocket av undantag som inte Ă€r kopplade till variabler.
  • Möjlighet lĂ€mna ett kommatecken efter det sista elementet i funktionsparameterlistan.
  • Nytt grĂ€nssnitt Stringable för att identifiera alla strĂ€ngtyper eller data som kan konverteras till en strĂ€ng (för vilka metoden __toString() Ă€r tillgĂ€nglig).
  • Ny funktion str_contains(), en förenklad motsvarighet till strpos för att identifiera förekomsten av en delstrĂ€ng, samt funktionerna str_starts_with() och str_ends_with() för att kontrollera överensstĂ€mmelse i början och slutet av strĂ€ngen.
  • Funktionalitet har lagts till fdiv(), som utför division utan att ge felmeddelande vid division med noll.
  • Ändrad logiken för strĂ€ngsammanfogning. Till exempel, uttrycket ‘echo «sum: » . $a + $b’ tolkades tidigare som ‘echo («sum: » . $a) + $b’, men i PHP 8 kommer det att hanteras som ‘echo «sum: » . ($a + $b)’.
  • SkĂ€rpt kontroll av aritmetiska och bitvisa operationer, till exempel uttrycken «[] % [42]» och «$object + 4» kommer att leda till fel.
  • Implementerad ett stabilt sorteringsalgoritm, dĂ€r ordningen pĂ„ lika vĂ€rden bevaras vid olika körningar.
  • KĂ€lla: opennet.ru

Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar đŸ”„ Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar | ProHoster