Primerjava med PHP 5 in PHP 7

Kakšne so razlike med PHP 5 in PHP 7 in kam se je izgubila verzija PHP 6?

Najbolj pomembne razlike vam bomo skušali prikazati v tem članku.

Trenutno lahko rečemo le to, da predstavlja PHP 7 velik dosežek v jeziku PHP. Je ta napredek tako velik, da so mogoče celo preskočili verzijo?

Ne, žal verzioniranje ne poteka tako. PHP 6 je že obstajal v preteklosti kot poskusna verzija, ki ni nikoli prišla do finalne izdaje. Da ne bi bilo zmešnjav, se je razvojna ekipa odločila, da bodo poimenovali novo verzijo PHP s številko, ki še ne obstaja ‒ PHP 7.

Katere so pomembne razlike, ki se bi jih moral zavedati vsak PHP-programer?

  1. Sveži pogon Zend, ki poganja PHP
    Pogon Zend poganja PHP od leta 1999, ko je le-ta prišel v javnost z izdajo PHP verzije 4. Pogon Zend je odprtokodna rešitev, napisana v C-jeziku, ki omogoča pogon za izvedbo zahtevkov/poizvedb, napisanih v PHP-jeziku.
    Verzija PHP 5 je uporabljala Zend Engine II, ki je razširil uporabo in zmogljivost PHP-jezika. PHP 7 pa uporablja prenovljeno izdajo Pogona Zend, ki se imenuje PHP#NG (Next Generation)
  2. Podvojena hitrost PHP
    Najbolj opazna prednost pri uporabi zadnje verzije PHP 7 je seveda hitrost. Razvojna ekipa Zend se je odločila, da premisli celoten koncept pogona Zend. Tako so prepisali velik del pogona z enim ciljem ‒ optimizacija porabe spomina. Več rezultatov primerjav med verzijami lahko preverite tukaj.
  3. Razširjeno beleženje napak
    Beleženje fatalnih napak in raziskav teh napak sta bili vedno težavi razvoja v PHP-jeziku. Razvojna ekipa je z novo verzijo PHP razširila podporo beleženja teh napak z uporabo Error izjem.
    Zdaj lahko večino napak beležimo tako, da ulovimo izjemo v kodi, še preden postane ta izjema fatalna napaka. Tako lahko prestrežemo večino napak, še preden nam ta napaka povzroči celotno nedelovanje sistema.
  4. Novi operatorji
    Z verzijo PHP 7 je programerski jezik dobil tudi dva nova operatorja, ki programerjem PHP olajšata pisanje kode.
    Prvi novi operator je tako imenovan operator vesoljske ladje (angl. spaceship operator) in je videti nekako takole a <=> b. Operator vrne 0, če sta a in b enaka, 1, če je a večji in -1, če je b večji.Drugi operator se imenuje operator ničelne primerjave (angl. Null Coalescing). V kodi se zapiše v obliki dveh vprašajev (??).  Ta operator lahko uporabimo, ko hočemo preveriti, ali neka spremenljivka obstaja, in če ne obstaja, vrnemo privzeto vrednost.
  5. Deklaracija tipov spremenljivkNova verzija PHP 7 omogoča programerjem boljše pisanje kode z definiranjem tipov podatkov, ki bodo vrnjeni v neki funkciji. Tako lahko programer hitro ugotovi, kateri tip podatka bo določena funkcija vrnila.Razvojna ekipa je zaradi tega podprla 4 različne skalarne tipe spremenljivk: int, float, string, bool. Programerjem bo tako zdaj omogočeno definiranje tipa vrnjenih podatkov funkcij in strogo pisanje spremenljivk glede na definiran tip.
  6. Anoninimi razredi
    Z novo verzijo PHP 7 smo programerji pridobili tudi možnost uporabe anonimnih razredov, kar je že ustaljena praksa v jeziku C# in Java. Anonimni razredi so razredi, ki nimajo imena. Definirajo objekt, ki ima isto funkcionalnost kot objekt imenovanega razreda. Uporaba takšnih funkcij pohitri prevajanje kode in omogoča tudi hitrejše pisanje le-te.
  7. Odstranjevanje zastarelih funkcij
    Cilj razvoja verzije PHP 7 je bilo čiščenje zastarele kode in omogočanje močnih temeljev za razvoj novih funkcionalnosti in izboljšav samega jezika. Večina odstranjene zastarele kode je bila označena kot zastarela že v verziji PHP 5.x.Če ste torej kot programer polagali pozornost na obvestila pogona PHP, ste lahko brez problema preklopili na novejšo verzijo PHP 7. Za več informacij glede zastarele kode preverite uradno stran PHP wiki.