PHP 7-release:belangrijkste functies en wat u moet weten
Als je een ontwikkelaar bent, weet je waarschijnlijk dat de volledige bètaversie van de nieuwe PHP 7 uit is. De 7.0.0-versie bevat veel coole features en functionaliteiten. We raden u echter aan om het niet in een productieomgeving te gebruiken , totdat je de stabiele versie krijgt, die in november '15 wordt verwacht.
U bent vrij om de nieuwste bètaversie te testen en ermee te spelen, en bugs te melden als u deze tijdens het testen ontdekt. We vermelden alle wijzigingen/upgradaties die u zult zien in PHP 7.0.0.
16. Dit is PHP 7 (niet 6)
De huidige stabiele versie is PHP 5.6. Veel ontwikkelaars verwachten dus versie 6.0. Wat ze niet weten is dat PHP 6 in het verleden al bestond als experimenteel proces, maar nooit de productiefase bereikte. Het kernontwikkelingsteam besloot dat ze de naam PHP 6 zouden doorgeven voor de volgende grote release.
15. 64-bits Windows-ondersteuning
De huidige PHP-versie biedt geen ondersteuning voor 64-bits gehele bestanden of grote bestanden. De dingen zullen in de toekomst veranderen, aangezien PHP 7 consistente 64-bits ondersteuning introduceert, wat betekent dat zowel native 64-bit gehele getallen als grote bestanden zullen worden ondersteund.
14. Verwijdering van verouderde functies en extensies
Een van de belangrijkste doelen van PHP 7 was het vrijmaken van geheugen om verbeteringen mogelijk te maken. Daarom werd het noodzakelijk om oude, niet-ondersteunde server-API's, extensies en verouderde functionaliteiten te elimineren.
Alle verwijderde items zijn al lange tijd niet meer gebruikt. Als je echter een verouderde applicatie hebt die op oudere versies draait, kan een upgrade naar PHP 7 mogelijk de code kapot maken.
Lees:30 tools voor het volgen van bugs voor ontwikkelaars
13. Groepsgebruiksverklaringen
Deze RFC is gemaakt om de huidige PHP-naamruimte-implementatie te verbeteren door het concept van een groep declaraties te introduceren. Deze functie is handig voor codeerders die gewoonlijk veel klassen uit dezelfde naamruimte importeren. De nieuwe syntaxis elimineert breedsprakigheid, maakt uw code overzichtelijker en bespaart u veel typtijd.
12. Anonieme klassen
Het concept van anonieme klassen wordt al gebruikt in andere objectgeoriënteerde programmeertalen zoals Java en C#. Ze zijn niets anders dan een klasse zonder naam die zowel de codering als de uitvoeringstijd kan versnellen. U moet ze gebruiken als een klasse slechts één keer wordt gebruikt tijdens de uitvoering en als een klasse niet hoeft te worden gedocumenteerd.
11. Uniforme variabelensyntaxis
Uniforme syntaxis van variabelen lost veel inconsistenties op in de manier waarop expressies worden geëvalueerd. Bijvoorbeeld de mogelijkheid om sluiting aan te roepen die is toegewezen aan eigenschappen met behulp van ($object->closureProperties)() , evenals de mogelijkheid om statische oproepen aan elkaar te koppelen.
In een oudere versie van PHP, $obj->$properties[‘name’] zou toegang krijgen tot de eigenschap waarvan de naam in de naamsleutel van de eigenschappenarray staat. Nu heeft het toegang tot de naamsleutel van de eigenschap waarvan de naam zich in $properties.
bevindt10. Unicode Codepoint Escape-syntaxis
Met het nieuwe escape-teken (\u) kunnen we Unicode-tekencodepunten (in hexadecimaal) ondubbelzinnig binnen tekenreeksen specificeren. Als u bijvoorbeeld geen emoji kunt typen, kunt u in plaats daarvan de escape-reeks gebruiken.
9. Gedeelde ouderklasse bij afhandeling van uitzonderingen
Voor PHP-codeurs is het omgaan met fatale en haalbare fatale fouten nog nooit een gemakkelijke taak geweest. Met de nieuwe Engine Exceptions kunt u dit soort fouten vervangen door uitzonderingen.
Om programmeurs in staat te stellen zowel traditionele uitzonderingen als engine-uitzonderingen te onderscheppen, introduceert PHP 7 een nieuwe gedeelde bovenliggende klasse onder de naam \BaseException .
8. Bindsluiting bij call
Sluiting::bind() en Sluiting->bindTo() Hiermee kunt u de binding van $this wijzigen en het aanroepende bereik, afzonderlijk of samen, waardoor een dubbele afsluiting ontstaat. In PHP 7 is er een eenvoudige manier om dit tijdens het gesprek te doen, door beide $this te binden en het aanroepen van scope naar hetzelfde object met de toevoeging van Sluiting->aanroep(). De methode neemt het object als eerste argument, gevolgd door een eventueel argument dat in de afsluiting moet worden doorgegeven.
7. Null Coalesce-operator
De coalescentie-operator wordt aangegeven met “??”. Het retourneert het resultaat van de eerste operand als deze bestaat en niet NULL is, anders retourneert het de tweede operand. Dat betekent dat het volkomen veilig is om coalescentie te gebruiken, omdat er geen E_NOTICE ontstaat, zelfs als de waarde niet bestaat.
6. Gecombineerde vergelijkingsoperator
Gecombineerde vergelijkingsoperator (ook wel ruimteschipoperator genoemd) is vergelijkbaar met version_compare() of strcmp() in gedrag, maar het kan in alle generieke PHP-waarden worden gebruikt. Het bestaat al in de programmeertaal Ruby en Perl.
De operator retourneert -1 als de linkeroperand groter is, 0 als beide gelijk zijn en 1 als de linkeroperand groter is.
5. Generatorretourexpressie en generatordelegatie
Met de retourexpressie van de generator kunt u een waarde retourneren na succesvolle voltooiing van een generator. In PHP 7 kun je $generator->getReturn() aanroepen om de geretourneerde waarde op te halen. Als de generator nog geen niet-afgevangen uitzondering heeft geretourneerd of gegenereerd, $generator->getReturn() zal een uitzondering maken. Als de generator is voltooid maar er geen retourzending is geweest, wordt NULL geretourneerd.
Met de generatordelegatiefunctie kunt u een andere iterabele structuur retourneren die zelf kan worden doorlopen, of het nu een iterator, array of een andere generator is. De iteratie van de substructuur wordt gedaan door de buitenste originele lus, in plaats van een recursieve lus.
4. Retourtypeverklaringen
Veel programmeurs willen graag het retourtype van een functie declareren. Het helpt voorkomen dat onbedoelde retourwaarden en subtypen het verwachte retourtype van het supertype verbreken, vooral in interfaces. Bovendien wordt PHP 7 geleverd met 4 nieuwe typevertragingen voor het scalaire type:string, int, float en bool. Met deze nieuwe typen kunnen codeerders specificeren dat ze verwachten dat integer, float, string en boolean worden geretourneerd.
In de bovenstaande afbeelding zou de functie foo in array moeten terugkeren. Bekijk enkele complexe voorbeelden.
3. Samenvatting Syntaxisboom
De grootste en meest onzichtbare verandering is de toevoeging van een abstracte syntaxisboom – een tussenweergave van de code tijdens het compileren. Het vervangt de bestaande praktijk van het rechtstreeks uitzenden van opcodes vanuit de parser. Hierdoor kunnen we een aantal hacks verwijderen en wordt de implementatie begrijpelijker en onderhoudbaarder. Ook kunt u syntaxis implementeren die niet haalbaar was met het single-pass compilatieproces.
2. De geheel nieuwe Zend-engine
De eerste Zend Engine die in 1999 werd geïntroduceerd in PHP 4. Het is een open source scriptingengine (geschreven in C) die PHP interpreteert. De huidige PHP-versie maakt gebruik van Zend Engine II, dat geheugen- en resourcebeheer biedt en een uitbreidbaar objectmodel en aanzienlijke prestatieverbeteringen aan de taal toevoegt.
De nieuwe Zend Engine III, oorspronkelijk met de codenaam phpng, is in ontwikkeling voor PHP 7.
1. Prestaties + geheugenbesparing
De grootste reden om te upgraden naar PHP 7 zijn de prestaties. Dit is goed nieuws, vooral voor kleinere hosts, omdat ze meer klanten op dezelfde hardware kunnen hosten. De prestaties van de 7e versie zijn vergelijkbaar met die van Facebook HHVM, die beschikt over een JIT-compiler (just-in-time) die compilatie tijdens runtime mogelijk maakt in plaats van voorafgaand aan de uitvoering. Er is ook een aanzienlijke geheugenbesparing, evenals de optimalisatie van interne datastructuren.
Aanbevolen:30 geweldige PHP-bibliotheken voor programmeurs en ontwikkelaars
Zoals je kunt zien in de grafiek van Zend, wordt het WordPress-verzoek op PHP 5.6 uitgevoerd onder 100 miljoen CPU-instructies, terwijl PHP 7 slechts 25 miljoen uitvoert om hetzelfde werk te doen. Bovendien blijkt uit testen dat je 3x Magento-transacties op dezelfde hardware kunt uitvoeren, en dat Drupal 8 72% sneller draait met PHP 7.
Industriële technologie
- Hoe IoT en industriële automatisering innovatie stimuleren
- Alles over een industrieel IoT
- Live vanuit het hele land, het is productiedag
- AWFS 2019 Woodworking Machinery Exhibition in Las Vegas, VS
- Single-cavity vs. multi-cavity spuitgieten
- Veldspoelen:functie, veelvoorkomende storingen en oplossingen
- Bent u voorbereid op de openstelling van economieën?
- Hoe 3D-printen de onderdelenindustrie verandert
- Hoe de machineproductiviteit te maximaliseren:chipverdunning
- MES versus IIoT-platform:waarom niet beide?
- Wat is puntlassen? - Definitie, hoe werkt het?