PHP 5.6 Hva er nytt

Det har gått lenge, men vi har endelig en ny versjon av PHP. Det gir noen flotte nye funksjoner og forbedringer, mens andre funksjoner har blitt fjernet eller merket som utdatert.

La oss dykke inn og ta en titt på alt den nyeste versjonen tilbyr.

Bakover inkompatible endringer

I denne delen vil jeg notere bakover uforenlige endringer; Men det meste av PHP5-koden din vil fungere i PHP 5.6 uten noen endringer.

json_decode

I henhold til JSON-spesifikasjonen, json_decode () vil umiddelbart eliminere alle ikke-små bokstaver av JSON-bokstavene som ekte, falsk og null. Det vil også sette json_last_error () tilsvarende.

GMP Resources

Hvis du ikke er sikker på hva GNU Multiple Precision (GMP) i PHP er, vil jeg anbefale deg å se på denne artikkelen på PHP.net. I PHP 5,6 er GMP-ressurser objekter. Du trenger ikke å gjøre noen endringer i din eksisterende kode, med mindre du sjekker en ressurs som eksplisitt bruker is_resource ().

mcrypt

Alle Mcrypt-funksjoner som forventer at nøkler og IV'er ikke vil akseptere nøkler eller IV'er med feil størrelse. Disse funksjonene inkluderer mcrypt_encrypt (), mcrypt_decrypt (), mcrypt_cbc (), mcrypt_cfb (), mcrypt_ecb (), mcrypt_generic (), og mcrypt_ofb ().

Array Verdier og Overwriting

Før PHP 5.6, da du erklærte en matrise i klasseegenskap med eksplisitte og implisitte nøkler, ble arrayverdien overskrevet stille når eksplisitt nøkkel var det samme som en sekvensiell implisitt nøkkel.

klasse helloWorld const ONE = 1; offentlig $ array = [selv :: ONE => 'Eclipse', 'Sublime', 'PHPStorm',];  $ hei = ny helloWorld (); print_r ($ hallo); // Før PHP 5.6 array ('Sublime', 'PHPStorm') // PHP 5.6 array ('Eclipse', 'Sublime', 'PHPStorm')

Nye funksjoner i PHP 5.6

Konstante skalære uttrykk

Med utgivelsen av PHP 5.6 er det mulig å gi et skalaruttrykk som inneholder både numeriske og streng-bokstaver. I tidligere versjoner av PHP ble det forventet å være en statisk verdi av konstante funksjonsargumenter og eiendomserklæring.

const ONE = 1; // Skalaruttrykk i konstant konstant TWO = ONE * 2; klasse helloWorld // Scalar Expression i Property const THREE = TWO + 1; // Scalar Expression in Methods offentlig hei f ($ a = ONE + selv: THREE) return $ a;  ekko (ny helloWorld) -> hallo (). "\ n";

Variadiske funksjoner via "..."

Tidligere brukte vi func_get_args () for å få alle argumentene tilgjengelige i et funksjonsanrop, men med PHP 5.6, kan dette fjernes fordi vi lett kan få det anlegget med ... operatør.

funksjon myTools ($ navn, ... $ verktøy) echo "Name:". $ Navn.
'; ekko "Min verktøytelling:". teller (verktøy); myTools ('Avinash', 'Eclipse'); // Utgang: // Navn: Avinash // Mitt verktøystall: 1 myTools ('Avinash', 'Eclipse', 'Sublime'); // Utgang: // Navn: Avinash // Mitt verktøystall: 2 myTools ('Avinash', 'Eclipse', 'Sublime', 'PHPStorm'); // Utgang: // Navn: Avinash // Mitt verktøy Antall: 3

Argument Pakking

Vi kan bruke samme operatør (... ) for å pakke ut noe argument som enten er en matrise eller et sett med Traversable objekter. 

funksjon myTools ($ navn, $ tool1, $ tool2, $ tool3) echo "Name:". $ Navn.
'; ekko "Tool1:", $ tool1. '
'; ekko "Tool2:", $ tool2. '
'; ekko "Tool3:", $ tool3; $ myTools = ['Eclipse', 'Sublime', 'PHPStorm']; myTools ('Avinash', ... $ myTools); // Utgang: // Navn: Avinash // Tool1: Eclipse // Tool1: Sublime // Tool1: PHPStorm

** Shorthand

De ** operatør har blitt lagt til for eksponering. Vi har støtte for shorthand operatøren like enkelt.

ekko 2 ** 3; ekko "
"; $ a = 2; $ a ** = 3; ekko $ a; // Utgang // 8 // 8

Vær oppmerksom på at operasjons rekkefølgen kommer i bruk med denne operatøren. Ta en titt på følgende eksempel for en klar forståelse:

ekko 2 ** 2 ** 4;

Du kan forvente at det kommer tilbake 256 da grupperingen vil være som (2 ** 2) ** 4, men det er ikke tilfelle her. Det virkelige resultatet ville være 65.536, da grupperingen ville være fra høyre til venstre, og det vil analysere som 2 ** (2 ** 4).

phpdbg

En interaktiv debugger kalt phpdbg har blitt lagt til i PHP 5.6. Vennligst besøk det offisielle dokumentet for phpdbg.

Denne phpdbg debugger er implementert som en SAPI-modul.

__Feilsøkingsinformasjon()

En ny magisk metode lagt til i PHP 5.6 lar deg endre egenskapene og verdiene til et objekt når objektet blir utført ved hjelp av var_dump ().

klassen demoDebugInfo () private $ val; offentlig funksjon __construct ($ val) $ this-> val = $ val;  offentlig funksjon __debuginfo () return ['iamchanged' => $ this-> val + 3; ];  $ debugInfo = ny demoDebugInfo (50); // Vi vil få endret array som returneres av __debuginfo megic metode. var_dump ($ debugInfo);

Standard tegnkoding

Standard tegnsett for htmlentities (), html_entity_decode () og htmlspecialchars () funksjoner kan settes med default_charset ().

Stor filopplasting

Det er mulig å laste opp en fil som er større enn 2 GB.

php: // input er gjenbrukbart

php: // input kan brukes så mange ganger du vil lese data. Denne funksjonen gir en stor reduksjon i minne sammenlignet med lesing POST data.

bruk funksjon og bruk const

De bruk operatør har blitt tilbudt å støtte utvidelse av konstanter og funksjoner. Dette kan utføres ved å bruke konst og bruk funksjoner, henholdsvis. Tidligere var denne operatøren begrenset til kun klasse.

Utdaterte funksjoner

Ring fra inkompatibel sammenheng

Når du forsøker å få tilgang til en ikke-statisk metode statisk, eller en statisk metode som bruker objektkontekst, genererer den umiddelbart E_DEPRECATED feil.

klasse helloWorld () offentlig statisk hiWorld ()  $ hei = ny helloWorld (); $ Hei-> hiWorld (); // Før PHP 5.6 E_STRICT error // Fra PHP 5.6 E_DEPRECATED feil

$ HTTP_RAW_POST_DATA

$ HTTP_RAW_POST_DATA er avskrevet nå. Vi burde bruke php: // inngangs i stedet.

Kodinginnstilling

Med lanseringen av default_charset () konfigurasjon, er det relaterte alternativet avskrevet for iconv og mbstring.

Liste over endrede funksjoner

En liste over alle endrede funksjoner i PHP 5.6 finnes i den nyeste PHP-håndboken.

Liste over nye funksjoner

En liste over alle nye funksjoner i PHP 5.6 finnes i denne delen av PHP-håndboken.

Konklusjon

Mens PHP-teamet jobber med den neste versjonen av PHP, vil jeg si PHP 5.6 har levert med en solid mengde forbedringer og funksjoner, og tilbyr en av de enkleste oppgraderingene fra tidligere versjoner.

Ikke glem å gi oss beskjed om eventuelle spørsmål eller kommentarer du måtte ha i feedet under.