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 PHP 8:
- , vars anvÀndning kommer att öka prestandan.
- 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 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 , som definierar samlingar av tvÄ eller fler typer (t.ex. "public function foo(Foo|Bar $input): int|float;" ).
- Support (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 , 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ör klassdefinitioner, vilket gör det möjligt att kombinera definitionerna av konstruktorer och egenskaper.
- Nytt returvĂ€rdestyp â .
- Ny typ â , som kan anvĂ€ndas för att definiera en funktion som tar emot parametrar med olika typer.
- Uttrycket för hantering av undantag.
- för att skapa objekt som kan slÀppas vid skrÀpinsamling (t.ex. för att lagra valfria cacher).
- anvÀndning av uttrycket "::class" för objekt (motsvarande anropet get_class()).
- definitioner i catch-blocket av undantag som inte Àr kopplade till variabler.
- lÀmna ett kommatecken efter det sista elementet i funktionsparameterlistan.
- Nytt grÀnssnitt 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 , 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 , som utför division utan att ge felmeddelande vid division med noll.
- 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)â.
- kontroll av aritmetiska och bitvisa operationer, till exempel uttrycken «[] % [42]» och «$object + 4» kommer att leda till fel.
- ett stabilt sorteringsalgoritm, dÀr ordningen pÄ lika vÀrden bevaras vid olika körningar.
KĂ€lla: opennet.ru
