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.
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.
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.
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 ()
.
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 ()
.
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')
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";
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
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
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)
.
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.
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 tegnsett for htmlentities ()
, html_entity_decode ()
og htmlspecialchars ()
funksjoner kan settes med default_charset ().
Det er mulig å laste opp en fil som er større enn 2 GB.
php: // input kan brukes så mange ganger du vil lese data. Denne funksjonen gir en stor reduksjon i minne sammenlignet med lesing POST
data.
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.
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
er avskrevet nå. Vi burde bruke php: // inngangs
i stedet.
Med lanseringen av default_charset ()
konfigurasjon, er det relaterte alternativet avskrevet for iconv
og mbstring
.
En liste over alle endrede funksjoner i PHP 5.6 finnes i den nyeste PHP-håndboken.
En liste over alle nye funksjoner i PHP 5.6 finnes i denne delen av PHP-håndboken.
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.