PHP 7 is er en dit zijn de nieuwe features

Lisez en français - Read in English

Een prachtig eindejaarsgeschenk voor alle ontwikkelaars: PHP 7 is er!

De vele PHP ontwikkelaars keken reikhalzend uit naar de nieuwste versie van deze programmeertaal, omdat die een betere performantie beloofde. Maar PHP 7 heeft voor hen nog veel meer verbeteringen in petto. Thijs Feryn, evangelist bij Combell, geeft wat uitleg (klik hier voor een technische versie met meer details & codevoorbeelden op de persoonlijke blog van Thijs).

Bliksemsnel met PHP 7 dankzij de PHP Next Generation engine

Bliksemsnel met PHP 7 dankzij de PHP Next Generation engineDat PHP enorm populair is bij ontwikkelaars, moeten wij je niet meer vertellen. Origineel bedacht door Rasmus Lerdorf in 1994 stond PHP toen nog voor Personal Home Page. Ondertussen is de taal uitgegroeid tot een uit de kluiten gewassen, enorm veelzijdige tool bij het ontwikkelen van websites, mede dankzij de heel actieve community ontwikkelaars die voortdurend timmeren en boetseren aan deze taal.

Deze week werd een nieuwe mijlpaal bereikt in de evolutie van deze taal: PHP versie 7.0 is daar. Die maakt om te beginnen diepe indruk door zijn sterk verbeterde performantie, te danken aan de nieuwe PHP Next Generation engine, de opvolger van de huidige Zend Engine. De engine zou tot twee keer sneller zijn dan bij de vorige versie, PHP 5.6.

Scalar type hints en return type declarations

Deze nieuwe versie bevat echter nog meer verbeteringen. Zo wordt nu gewerkt met scalar type hints. PHP is van oorsprong een 'loosely typed language'. Dit betekent dat variabelen niet met strikte datatypes gedeclareerd worden, zodat een variabele, in de loop van een script, een waarde van een ander type kan bevatten dan de oorspronkelijke waarde.

Dat maakt PHP enorm flexibel, maar soms ook onbetrouwbaar omdat fouten niet meteen gemeld worden. Daarom werden na verloop van tijd de type hints ingebouwd: voldoet een waarde niet aan de type hint, dan wordt een waarschuwing weergegeven. Mooi, maar deze typehints waren tot nu toe beperkt tot objecten, arrays en de zogenaamde callables.

In PHP 7 zijn nu scalar type hints voorzien: ook integers, strings, booleans en floats kunnen voorzien worden van type hints. Bovendien is er nu ondersteuning voor return type declarations. Zo kan je als ontwikkelaar ervoor zorgen dat de output van functies en methods consistent is.

Wanneer je PHP in de standaard modus draait, coercive, dan zal PHP enkel een fout geven wanneer een verkeerd type doorgegeven wordt dat niet omgezet kan worden naar het gewenste type. Zo zal de string "12" wel toegelaten worden als de interface van de functie of method een integer verwacht. Maar activeer je de strict modus, dan zal PHP minder vergevingsgezind zijn en meteen een fout geven wanneer de types niet 100% overeenkomen.

Operators: Nulletjes... en Ruimteschepen

PHP 7 Operators en space shipsPHP 7 kent ook enkele nieuwe operators:  de null coalesce operator en de space ship operator.

De null coalesce operator is een zogenaamde 'ternary operator' die nagaat of de geëvalueerde waarde bestaat en geen null is. Wanneer dit het geval is wordt de waarde geretourneerd, indien niet wordt een alternatieve waarde geretourneerd.

De space ship operator (how we love that name!) laat toe om te bepalen of een waarde groter, kleiner of gelijk is aan een andere waarde. Dit wordt uitgedrukt met 0 (gelijk aan), -1 (kleiner dan), of 1 (groter dan).

Anonymous classes

En dan zijn er nog de classes. In het object georiënteerd model van PHP worden classes expliciet gedeclareerd en later expliciet geïnstantieerd naar objecten. Vanaf PHP 7 is het mogelijk om anonymous classes te declareren. Dit zijn classes die on-the-fly gedeclareerd worden, vergelijkbaar met anonymous functions ( ~ callbacks) die al een eindje in PHP 5 beschikbaar zijn.

Euh... en wat met PHP 6?

PHP 7 is er en dit moet je wetenDe aandachtige lezer zal zich afvragen waarom deze nieuwe versie PHP 7.0 heet, terwijl de laatste versie PHP 5.6 heet. Waar is PHP 6 gebleven? Wel, PHP 6 heeft ooit bestaan, maar werd nooit gelanceerd. De voornaamste bedoeling van PHP 6 was om volledige Unicode support aan te bieden, ook op vlak van de taal zelf.  Deze doelstelling bleek uiteindelijk niet haalbaar te zijn en PHP 6 werd dood verklaard. De andere features die PHP 6 had moeten hebben werden in PHP 5.3 opgenomen.

Hoewel PHP 6 nooit het daglicht heeft gezien, bestond het project wel binnen de core group van PHP. Net daarom is de beslissing genomen om de nieuwe versie PHP 7 te noemen.

Meer weten?

PHP bevat veel meer nieuwigheden dan we hier kunnen behandelen. Neem gewoon even een kijkje op http://php.net/manual/en/migration70.new-features.php voor een volledig overzicht.

Onze collega Thijs heeft zijn naam als evangelist bij Combell opnieuw waar gemaakt: in een filmpje legt hij de belangrijkste features aan de hand van codevoorbeelden uit.

Hij schreef er ook een technische blog post over met meer details en codevoorbeelden.

Wil je PHP 7 nu al gebruiken op jouw hosting?

Dat kan! Wij bieden PHP 7.0.0 nu al aan op onze shared hostingpakketten. Ga naar jouw My Combell controlepaneel om over te schakelen van PHP 5 naar PHP 7. Wil je PHP 7 op jouw Cloud server gebruiken? Ook dat kan! Neem contact op met onze supportafdeling. Zij kunnen indien nodig PHP 7 compileren op jouw systeem.

Klik hier om PHP 7 hosting te bestellen

Toch nog even deze melding: PHP 7 bevat ook verscheidene backwards incompatible changes. Ga even naar http://php.net/manual/en/migration70.incompatible.php en controleer of jouw code overweg kan met deze aanpassingen.

Veel succes met je razendsnelle PHP!