Da qualche tempo è disponibile php 7. L’ultima versione del noto Hypertext Preprocessor ha portato con sé molte novità rispetto alla versione 5.6 che la precedeva. Tanto per cominciare gli sviluppatori hanno scelto di saltare la versione 6: vediamo perché!

Lo sviluppo della versione 6 era iniziato con l’intenzione, tra le altre cose, di implementare il supporto nativo per la codifica standard Unicode. Questo però si è rivelato ben presto un compito particolarmente dispendioso in termini di risorse. Inoltre i primi test avrebbero messo in luce un effetto particolarmente negativo in termini di prestazioni.

Per questo motivo il progetto è stato interrotto e gli sviluppatori hanno scelto di continuare lo sviluppo creando un nuovo ramo, ovvero php 7. A voler essere precisi, la più recente versione è nata dal fork versione 5.7 ma le modifiche furono talmente sostanziali da convincere gli sviluppatori a promuoverla a major release.

Quali sono le novità di php 7?

Innanzitutto lo “spaceship operator”. La combinazione di simboli “<=>” può essere utilizzato con qualsiasi tipo di dato supportato da php e, con la stessi sintassi di un qualunque altro operatore di confronto, restituisce 0 in caso i due operandi siano uguali, 1 se l’operando di sinistra è più grande, -1 se è l’operando di destra ad essere maggiore.

Viene poi introdotto il “null coalescing operator” molto simile all’“Elvis operator” che era stato introdotto in precedenza. Questo nuovo operatore restituisce l’operando di sinistra se questo non è NULL altrimenti restituirà l’operando di destra. Bisogna tenere conto del fatto che il null coalescing operator non produce eccezioni in caso in cui l’operatore di sinistra sia inesistente. Risulta evidente che questo operatore consente un risparmio di tempo durante la digitazione e permette di creare sorgenti più leggeri.

Una delle features più attese dagli sviluppatori era certamente la possibilità di utilizzo delle classi anonime. Grazie alla versione 7 sarà possibile sfruttare questo strumento già presente in molti altri linguaggi. Le classi anonime sono classi prive di un nome definito durante la programmazione, durante la dichiarazione e durante l’istanza. Si rivelano utili per chi ha necessità di utilizzare una classe solamente una volta in corso di esecuzione oppure per chi non necessita della documentazione delle classi.

Un’altra importante novità di php 7 è la dichiarazione dei tipi di dati scalari (ovvero quelli che contengono valori associati a bool, integer, float o string). In questo modo sarà possibile definire in modo più preciso nei metodi e nelle funzioni i parametri e i dati da restituire avendo un maggiore controllo sul flusso del codice. Legata alla dichiarazione dei tipi di dati scalari è anche l’implementazione di una nuova feature che consente ai programmatori di dichiarare il tipo di dato restituito.

Con l’ultima major release di php gli sviluppatori hanno lavorato anche sulla gestione degli errori. Finalmente è possibile utilizzare le Engine Exceptions introdotte per gestire i possibili errori che si verificano durante l’esecuzione del codice.

Gli sviluppatori di php hanno anche introdotto la possibilità di attivazione di un controllo più severo dei tipi per file attraverso una direttiva opzionale con cui php controllerà le variabili in strict-mode oppure in weak-mode.

Per approfondire l’argomento vi rimandiamo al sito ufficiale in cui sono spiegate (con esempi di codice) le novità introdotte in questo post.

Velocità PHP 7.X