lëshimi i parë beta i degës së re të gjuhës së programimit PHP 8. Lëshimi planifikohet më 26 nëntor. Njëkohësisht janë formuar lëshime korrigjuese për PHP 7.4.9, 7.3.21 dhe
7.2.33, në të cilat janë eliminuar gabimet dhe vulnerabilitetet e akumuluara.
Ndryshimet kryesore PHP 8:
- , përdorimi i të cilit do të mundësojë rritjen e performancës.
- argumenteve të emëruara të funksioneve, që lejojnë të kalohen vlera në funksion lidhur me emrat, dmth. mund të kalohen argumentet në rend të rastësishëm dhe të përcaktohen argumente opsionale. Për shembull, «array_fill(start_index: 0, num: 100, value: 50)».
- Kur thirren metodet përdorimi i operatorit «?», që lejon iniciimin e thirrjes vetëm nëse metoda është e pranishme, duke shmangur kështu kontrollimet e tepërta për kthimin e vlerës «null». Për shembull, «$dateAsString = $booking->getStartDate()?->asDateTimeString()»;
- Mbështetje , që përcaktojnë koleksione të dy ose më shumë tipeve (për shembull «public function foo(Foo|Bar $input): int|float;»).
- Mbështetje (annotations), që lejojnë lidhjen e metadatas (për shembull, informacion mbi tipet) me klasat pa përdorur sintaksën Docblock.
- Mbështetje për shprehjet , të cilat, për dallim nga switch, mund të kthejnë vlera, mbështesin kombinimin e kushteve, përdorin krahasimin strik të tipeve dhe nuk kërkojnë përcaktimin e «break».
$result = match($input) {
0 => «hello»,
â1â, â2â, â3â => «world»,
}; - e përcaktimit të klasave, që lejon bashkimin e definicionit të konstruktori me atributet.
- Lloji i ri i vlerave tĂ« kthimit â .
- Lloji i ri â , i cili mund tĂ« pĂ«rdoret pĂ«r tĂ« pĂ«rcaktuar marrjen e parametrave me tipe tĂ« ndryshme nga funksioni.
- Shprehja për trajtimin e përjashtimeve.
- për krijimin e objekteve që mund të sakrifikohen gjatë pastrimit të plehrave (për shembull, për ruajtjen e memorieve të tepërta).
- përdorimi i shprehjes «::class» për objekte (analog i thirrjes get_class()).
- përcaktimi në bllokun catch të përjashtimeve, që nuk janë të lidhura me variablat.
- lënia e simboleve të presjes pas elementit të fundit në listën e parametrave të funksionit.
- Ndërfaqja e re për identifikimin e çdo tipi ose të dhënash të vargut, të cilët mund të konvertohen në varg (për të cilët është në dispozicion metoda __toString()).
- Funksioni i ri , një analog i thjeshtuar i strpos për identifikimin e përmbajtjes së nënvargut, si dhe funksionet str_starts_with() dhe str_ends_with() për të verifikuar përputhjet në fillim dhe në fund të vargut.
- Shtesa e funksionit , që kryen operacionin e ndarjes pa nxjerrë një gabim në rast ndarjeje me zero.
- logjika e lidhjes sĂ« vargjeve. PĂ«r shembull, shprehja âecho «sum: » . $a + $bâ mĂ« parĂ« interpretohej si âecho («sum: » . $a) + $bâ, ndĂ«rsa nĂ« PHP 8 do tĂ« trajtohet si âecho «sum: » . ($a + $b)â.
- kontrolli i operacioneve aritmetike dhe bitore, për shembuj, shprehjet «[] % [42]» dhe «$object + 4» do të sjellin një gabim.
- algoritmi i qëndrueshëm për renditjen, në të cilin në herë të ndryshme ruhet rendi i të njëjtave vlera.
Burimi: opennet.ru
