PHP7.4
hvorfor er nogle programmeringssprog så populære, mens andre sjældent bruges til projektudvikling og nogle gange endda falder i glemsel? Der er mange grunde til det. Enkelheden i syntaks, funktionalitet, udviklingsnetværk og samfundsstøtte påvirker efterspørgselsniveauet for hver teknologi.
da IT-verdenen konstant udvikler sig, skal kodningsteknologier holde trit med det skiftende miljø ved at levere nye funktioner, opdateringer og forbedringer. Dette er et af de vigtigste elementer i sprogsucces.
i vores virksomhed nyder jeg PHP på grund af de hyppige forbedringer, der udføres hvert år, og tror, at det vil være populært i mange år fremover. Siden udgivelsen af PHP 5 i 2004 er dens ydeevne fordoblet og måske endda tredoblet. Dette er en af grundene til, at vi bruger PHP i vores programudviklingsvirksomhed.
det er ikke underligt, at PHP for andet år i træk er blandt de 10 mest populære programmeringssprog ifølge Stackoverløbsudviklerundersøgelse 2019. I år indtog det 8.pladsen, som er en rang højere end året før.
på bare 7 dage, torsdag den 28.November, ser vi den nye udgivelse af PHP — PHP 7.4, som bliver en af de mest funktionspakkede versioner nogensinde. I denne artikel vil jeg liste og dække den opdaterede Funktionsoversigt over PHP 7.4. Lad os komme i gang!
Pilfunktioners understøttelse
da anonyme funktioner eller lukninger hovedsageligt anvendes i JS, ser de ud til at være Detaljerede i PHP. Deres implementerings-og vedligeholdelsesprocedurer er også mere komplekse.
introduktionen af pilfunktioners support gør det muligt for PHP-udviklere at dramatisk rydde op i deres kode og gøre syntaksen mere kortfattet. Som følge heraf får du et højere niveau af kode læsbarhed og enkelhed. Tag et kig på eksemplet nedenfor.
så hvis du tidligere skulle skrive dette stykke kode:
function cube($n){return ($n * $n * $n);}$a = ;$b = array_map('cube', $a);print_r($b);
med PHP 7.4 vil du være i stand til at omskrive det på følgende måde:
$a = ;$b = array_map(fn($n) => $n * $n * $n, $a);print_r($b);
takket være evnen til at oprette pæn, kortere kode, vil internetudviklingsprocessen gå hurtigere, så du kan spare tid.
Typed properties’ support
introduktionen af typede egenskaber i den næste udgivelse vil sandsynligvis blive betragtet som en af de vigtigste opdaterede PHP-funktioner. Mens der tidligere ikke var nogen mulighed for at bruge deklarationsmetoder til klassevariabler og egenskaber (inklusive statiske egenskaber), kan programmører nu nemt kode det uden at oprette specifikke getter-og setter-metoder.
på grund af deklarationstyper (ekskl.ugyldige og konverterbare) kan du bruge nullable typer, int, float, array, string, object, iterable, self, bool og parent.hvis en udvikler forsøger at tildele en irrelevant værdi fra typen, for eksempel at erklære $name som streng, vil han eller hun få en TypeError-meddelelse.
ligesom pilfunktioner lader indtastede egenskaber også PHP-ingeniører gøre deres kode kortere og renere
Preloading
hovedformålet med denne seje nye funktion er at øge PHP 7.4-ydelsen. Kort sagt, forudindlæsning er processen med at indlæse filer, rammer og biblioteker i opcache og er bestemt en god tilføjelse til den nye udgivelse. Hvis du f.eks. bruger en ramme, skal dens filer hentes og kompileres igen for hver anmodning.
Når du konfigurerer OPcache, deltager disse kodefiler for første gang i anmodningsbehandlingen, og derefter kontrolleres de for ændringer hver gang. Forudindlæsning gør det muligt for serveren at indlæse de angivne kodefiler i delt hukommelse. Det er vigtigt at bemærke, at de konstant vil være tilgængelige for alle efterfølgende anmodninger uden yderligere kontrol for filændringer.
det er også bemærkelsesværdigt at nævne, at PHP under forudindlæsning også eliminerer unødvendige inkluderer og løser klasseafhængigheder og forbindelser med træk, grænseflader og mere.
Covariant returns& kontravariante parametre
i øjeblikket har PHP for det meste invariante parametertyper og invariante returtyper, der præsenterer nogle begrænsninger. Med introduktionen af covariant (typer bestilles fra mere specifikke til mere generiske) afkast og modstridende (typer bestilles fra mere generiske til mere specifikke) parametre, vil PHP-udviklere være i stand til at ændre parametertypen til en af dens supertyper. Den returnerede type kan igen let erstattes af dens undertype.
svage referencer
i PHP 7.4 tillader Svagreferenceklassen udviklere at gemme et link til et objekt, der ikke forhindrer dets ødelæggelse. Forveks det ikke med Svagref-klassen i Svagref-udvidelsen. På grund af denne funktion kan de lettere implementere cache-lignende strukturer.
se eksemplet på brug af denne klasse:
<?php$obj = new stdClass;$weakref = WeakReference::create($obj);var_dump($weakref->get());unset($obj);var_dump($weakref->get());?>
Bemærk også, at du ikke kan serialisere svage referencer.
Coalescing assign operator
en coalesce operator er en anden ny funktion Tilgængelig i PHP 7.4. Det er meget nyttigt, når du skal anvende en ternær operatør sammen med isset(). Dette giver dig mulighed for at returnere den første operand, hvis den findes og ikke er NULL. Hvis ikke, vil det bare returnere den anden operand.
Her er et eksempel:
<?php// Fetches the value of $_GET and returns 'nobody'// if it does not exist.$username = $_GET ?? 'nobody';// This is equivalent to:$username = isset($_GET) ? $_GET : 'nobody';// Coalescing can be chained: this will return the first// defined value out of $_GET, $_POST, and// 'nobody'.$username = $_GET ?? $_POST ?? 'nobody';?>
en spredningsoperatør i array-udtryk
PHP 7.4 giver ingeniører mulighed for at bruge spredningsoperatører i arrays, der er hurtigere sammenlignet med array_merge. Der er to hovedårsager til det. For det første anses en spread operator for at være en sprogstruktur, og array_merge er en funktion. Den anden grund er, at din kompileringstid nu kan optimeres til konstante arrays. Som følge heraf vil du have øget PHP 7.4 ydeevne.
Tag et kig på eksemplet med argument udpakning i array udtryk:
$parts = ;$fruits = ;var_dump($fruits);
det vil også være muligt at udvide det samme array flere gange. Da normale elementer kan tilføjes før eller efter spredningsoperatøren, vil PHP-udviklere desuden kunne bruge sin syntaks i arrayet.
en ny brugerdefineret objektserialiseringsmekanisme
i den nye version af PHP bliver to nye metoder tilgængelige: __serialisere og __unserialisere. Ved at kombinere alsidigheden af den Serialiserbare grænseflade med tilgangen til implementering af __søvn / __ vækkelsesmetoder vil denne serialiseringsmekanisme give PHP-udviklere mulighed for at undgå tilpasningsproblemer forbundet med de eksisterende metoder. Find ud af mere information om denne PHP-funktion.
refleksion for referencer
biblioteker, såsom symfony / var-dumper, er stærkt afhængige af ReflectionAPI for nøjagtigt at vise variabler. Tidligere var der ingen ordentlig støtte til referencereflektion, hvilket tvang disse biblioteker til at stole på hacks for at opdage referencer. PHP 7.4 tilføjer ReflectionReference klasse, som løser dette problem.
støtte til at kaste undtagelser fra __toString ()
tidligere var der ingen mulighed for at kaste undtagelser fra __toString-metoden. Årsagen til det er omdannelsen af objekter til strenge udføres i mange funktioner i standardbiblioteket, og ikke alle er klar til at “behandle” undtagelser korrekt. Som en del af denne RFC blev der foretaget en omfattende revision af strengkonverteringer i kodebasen, og denne begrænsning blev fjernet.
Endelige tanker
på bare en uge frigives PHP 7.4. Der er masser af nye PHP-funktioner, der reducerer hukommelsesforbruget og i høj grad øger PHP 7.4-ydeevnen. Du får mulighed for at undgå nogle tidligere begrænsninger af dette programmeringssprog, skrive renere kode og oprette internetløsninger hurtigere.