PHP 7 10 saker du behöver veta
Är du en webbutvecklare eller en webbplatsägare? Kör dina webbplatser på PHP-aktiverade CMS som WordPress, Drupal, Joomla eller Magento? Då har jag goda nyheter för dig: funktionen-komplett beta av den nya PHP 7 släpptes nyligen. Den 7.0.0 stora versionen innehåller så många coola funktioner som vi bestämde oss för att ägna en hel post till den. Men först måste vi glida i några påminnelser.
Observera att PHP 7 fortfarande är i utvecklingsfasen använd det inte i produktion fram till november när slutversion kommer att släppas. Om du som framtida användare vill ta rätt del av utvecklingsprocessen kan du hjälpa till med att hämta den senaste betaen, spela med den i din testmiljö och rapportera fel som du hittade under testningen. För att ta reda på när nästa beta kommer att vara ute, här är projektets tidtabell.
Med det ur vägen, låt oss kolla in PHP 7.
1. Namnet PHP 7 (Not 6)
Den nuvarande stabila versionen använder versionsnumret PHP 5.6. Efter en tvist beslöt utvecklingsgruppen att de skulle släppa bort PHP 6-namnet för nästa stora release. PHP 6 existerade redan tidigare som ett experimentellt projekt men nådde aldrig produktionsfasen.
För att förhindra att användarna blandar upp det tidigare försöket med den senaste utvecklingen kommer den nya stora versionen att köras under namnet PHP 7.
2. Brand Spanking New Zend Engine
Zend-motorn har drivit PHP sedan 1999 när den introducerades med den nya PHP 4-versionen. Zend - för att inte förväxlas med Zend Framework - är en öppen källkods-exekveringsmotor som skrivs i C som tolkar PHP-språket. Den nuvarande PHP 5.X-serien använder Zend Engine II som förbättrade funtionaliteten hos den inledande motorn och lägger till en utdragbar objektmodell och a betydande prestandaförbättring till språket.
PHP 7 tar emot en helt ny version av motorn som kommer under kodnamnet för PHP # NG (Next Generation).
3. Två gånger hastigheten
Den mest lättillgängliga fördelen med den nya PHPNG-motorn är den signifikanta prestandabehovet. Utvecklingslaget för PHPNG refactored Zend Engine, och anmärkningsvärt optimerad minnesanvändning.
Resultaten? Du kan se prestandatriktmärkenna från Zend Performance Team nedan. Genom att använda PHP 7 inte bara Din kod kommer att köras snabbare men du kommer också behöver färre servrar för att betjäna samma antal användare.
4. Underlättar felhantering
För att minst säga att hantering av dödliga och avtagbara dödliga fel har aldrig varit en lätt uppgift för PHP-kodare. Den nya Motor undantag kommer att låta dig ersätta dessa typer av fel med undantag. Om undantaget inte fångas, fortsätter PHP att returnera samma dödliga fel som det gör i den nuvarande 5.X-serien.
Den nya \ EngineException objekt sträcker inte ut \Undantag Basklass. Detta garanterar bakåtkompatibilitet och resulterar i två olika typer av undantag vid felhantering: traditionell och motor undantag.
För att möjliggöra programmerare att fånga båda, introducerar PHP 7 en ny delad föräldraklass under namnet \ BaseException.
5. 64 bitars Windows System Support
PHP är en framträdande medlem i LAMP-stacken, vilket innebär att den ursprungliga miljön är Linux - men det är också möjligt att köra det på ett Windows-system. 5.X-serien ger ännu inte 64-bitars heltal eller stort filsupport, så tills nu har x64-byggnader beaktats experimentell.
PHP 7 kommer att ändra detta som det introducerar konsekvent 64-bitars support vilket betyder både inbyggda 64-bitars heltal och stora filer kommer att stödjas, så att du säkert kan springa språket på ditt 64-bitars Windows-system i framtiden.
6. Nya rymdskepps- och Null Coalescing Operatörer
De Rymdskeppsoperatör körs under det officiella namnet på Kombinerade jämförelseoperatören. Noteringen av den nya operatören ser så här ut: <=>
(typ av som ett förenklat rymdskepp, om du föreställer dig det rätt).
Rymdskeppsoperatören returnerar 0 om båda operanderna är lika, 1 om vänster är större och -1 om höger är större. Det kallas också a trevägs jämförande operatör, och det finns redan i andra populära programmeringsspråk som Perl och Ruby.
Null Coalescing operatören betecknas med två frågetecken (??). Du kan använda den när du vill kontrollera om något finns och returnera ett standardvärde, om det inte gör det. Coalesce-operatören returnerar resultatet av sin första operand om den existerar och är inte null och den andra operanden i alla andra fall.
Så här förklarar den nya operatören tiden som spenderas med grundläggande deklarationer:
7. Aktiverar exakta typdeklarationer
Har du någonsin velat förhindra oavsiktliga returvärden genom att förklara avkastningstypen för en funktion? Tja, det nya PHP 7 gör det möjligt för utvecklare att förbättra kvaliteten på deras kod med hjälp av returtypdeklarationer.
Bilden nedan visar ett mycket enkelt användningsfall där foo () funktionen ska returnera en array. Kolla in mer komplicerade exempel här.
För att förbättra funktionen ännu mer introducerar PHP 7 4 nya typdeklarationer för skalartyper: int, float, sträng och bool. De nya skalärtyperna tillåter utvecklare att ange att de förväntar sig heltal, flottor, strängar eller booleaner som ska returneras. De nya skalärtyperna som introduceras av PHP 7 kommer också att stödjas av argumenttyptips som gör det möjligt för utvecklare att tvinga typen av parametrar sedan PHP 5.X-serien.
8. lägger till anonyma klasser
PHP 7 gör att du kan använda anonyma klasser, redan en väletablerad övning i andra objektorienterade språk som C # och Java. En anonym klass är en klass utan namn. Objektet som instanserar har samma funktion som ett objekt av en namngiven klass.
Syntaxen är densamma som vad vi är vana vid i traditionella PHP klasser, bara namnet saknas. Om anonyma klasser används väl kan de påskynda kodning samt exekveringstid. Anonyma klasser är utmärkta när en klass endast används en gång under körning och i fall då en klass inte behöver dokumenteras.
9. Underlättar import från samma namnrymd
Den nya funktionen för gruppanvändningsdeklarationer kommer att vara godsent till de som vill importera många klasser från samma namnrymd. Den nya syntaxen sänker verbositet, gör din kod tydligare och lättare i ögonen och sparar dig mycket typtid.
Det blir också lättare att läsa igenom och felsöka koder, eftersom gruppanvändningsdeklarationer hjälper dig att identifiera den import som tillhör samma modul.
10. Rengör rummet
Målet med PHP 7 var att frigöra utrymmet för att möjliggöra förbättringar, så det var nödvändigt att bli av med många avlägsna funktioner och gamla och ostödda Server API och tillägg. Om du vill kolla vilka som är i detalj, klicka här och här.
Alla borttagna föremål har avlägsnats ett tag i PHP 5, så troligtvis har du inte använt dem länge. Observera dock om du har en äldre app körs på äldre PHP-versioner den nya PHP 7 kan eventuellt bryta koden.