PHP 5.6 Ce este nou

A venit mult timp, dar avem în sfârșit o nouă versiune a PHP. Oferă câteva caracteristici și îmbunătățiri noi, în timp ce alte caracteristici au fost eliminate sau marcate ca fiind depreciate.

Să ne aruncăm cu capul și să aruncăm o privire la tot ceea ce oferă cea mai recentă versiune.

Modificări incompatibile înapoi

În această parte, voi enumera schimbări incompatibile înapoi; cu toate acestea, majoritatea codului dvs. PHP5 va funcționa în PHP 5.6 fără modificări.

json_decode

În conformitate cu specificația JSON, json_decode () va elimina imediat toate variantele non-litere ale literalurilor JSON cum ar fi true, false și null. Se va seta, de asemenea json_last_error () în consecinţă.

GMP Resurse

Dacă nu sunteți sigur ce este GNU Multiple Precision (GMP) în PHP, atunci vă sfătuiesc să vă uitați la acest articol pe PHP.net. În PHP 5.6, resursele GMP sunt obiecte. Nu este nevoie să efectuați modificări în codul existent decât dacă verificați utilizarea unei resurse is_resource ().

mcrypt

Toate funcțiile Mcrypt care așteaptă cheile și IV-urile nu vor accepta chei sau IV-uri cu mărime incorectă. Aceste funcții includ mcrypt_encrypt (), mcrypt_decrypt (), mcrypt_cbc (), mcrypt_cfb (), mcrypt_ecb (), mcrypt_generic (), și mcrypt_ofb ().

Valorile array și suprascrierea

Înainte de PHP 5.6, atunci când ați declarat o matrice în proprietatea de clasă cu chei explicite și implicite, valoarea array a fost suprascrisă în tăcere când cheia explicită a fost aceeași ca o cheie implicită secvențială.

clasa helloWorld const ONE = 1; public $ array = [auto :: ONE => 'Eclipse', 'Sublime', 'PHPStorm',];  $ hello = noul helloWorld (); print_r ($ Hello); // Înainte de PHP 5.6 array ('Sublime', 'PHPStorm') // PHP 5.6 array ('Eclipse', 'Sublime', 'PHPStorm')

Noile caracteristici din PHP 5.6

Expresii scalare constante

Odată cu lansarea PHP 5.6, este posibil să se furnizeze o expresie scalară care include atât literali numerici, cât și literali de șir. În versiunile anterioare de PHP, era de așteptat să fie o valoare statică a argumentelor funcției constante și a declarației de proprietate.

const ONE = 1; // Expresia scalară în const constantă TWO = ONE * 2; clasa helloWorld // Expresia scalară în proprietăți const THREE = TWO + 1; // Expresia scalară în metode publice hello f ($ a = ONE + eu :: TREI) return $ a;  ecou (nou helloWorld) -> salut (). "\ n";

Funcțiile Variadic prin "..."

Anterior am folosit func_get_args () pentru a obține toate argumentele disponibile într-un apel de funcții, dar cu PHP 5.6, acest lucru poate fi eliminat deoarece putem obține cu ușurință acea facilitate cu ... operator.

funcția myTools ($ name, ... $ tools) echo "Nume:". $ Nume.“
„; ecou "Numarul meu de instrumente:". conta (instrumente); myTools ("Avinash", "Eclipse"); // Output: // Nume: Avinash // My Tool Count: 1 myTools ('Avinash', 'Eclipse', 'Sublime'); // Output: // Nume: Avinash // My Tool Count: 2 myTools ('Avinash', 'Eclipse', 'Sublime', 'PHPStorm'); // Ieșire: // Nume: Avinash // Număr de unelte: 3

Argument Despachetarea

Putem folosi același operator (... ) pentru a despacheta orice argument care este fie un tablou sau un set de obiecte traversabile. 

funcția myTools ($ name, $ tool1, $ tool2, $ tool3) echo "Nume:". $ Nume.“
„; ecou "Instrumentul1:", $ instrument1. "
„; echo "Tool2:", $ tool2. "
„; echo "Tool3:", $ tool3; $ myTools = ['Eclipse', 'Sublime', 'PHPStorm']; myTools ('Avinash', ... $ myTools); // Output: // Nume: Avinash // Tool1: Eclipse // Tool1: Sublime // Tool1: PHPStorm

** Shorthand

** operator a fost adăugat pentru exponentiare. Avem sprijinul pentru operatorul de stenografie cât mai ușor.

echo 2 ** 3; ecou "
"$ a = 2; $ a ** = 3; echo $ a; // Output // 8 // 8

Rețineți că ordinea de operațiuni intră în joc folosind acest operator. Vă rugăm să aruncați o privire la următorul exemplu pentru o înțelegere clară:

echo 2 ** 2 ** 4;

S-ar putea să te aștepți să se întoarcă 256 ca gruparea ar fi ca (2 ** 2) ** 4, dar acest lucru nu este cazul aici. Rezultatul real ar fi 65.536, deoarece gruparea ar fi de la dreapta la stânga și va fi analizată ca 2 ** (2 ** 4).

phpdbg

Un program de depanare interactiv numit phpdbg a fost adăugat în PHP 5.6. Vizitați documentul oficial pentru phpdbg.

Acest program debugger phpdbg este implementat ca un modul SAPI.

__debugInfo ()

O nouă metodă magică adăugată în PHP 5.6 vă permite să modificați proprietățile și valorile unui obiect atunci când obiectul este ieșit folosind var_dump ().

clasa demoDebugInfo () privat $ val; funcția publică __construct ($ val) $ this-> val = $ val;  funcția publică __debuginfo () return ['iamchanged' => $ this-> val + 3; ];  $ debugInfo = nou demoDebugInfo (50); // Vom primi o matrice modificată care este returnată prin metoda __debuginfo megic. var_dump ($ debugInfo);

Codificarea caracteristică implicită

Setul de caractere implicit pentru htmlentities (), html_entity_decode () și htmlspecialchars () funcțiile pot fi setate folosind default_charset ().

Încărcare mare de fișiere

Este posibil să încărcați un fișier mai mare de 2 GB.

php: // intrarea este reutilizabilă

php: // introducerea poate fi utilizată ori de câte ori doriți să citiți date. Această caracteristică oferă o reducere semnificativă a memoriei în comparație cu citirea POST date.

utilizați funcția și folosiți const

 utilizare operator a fost oferit să sprijine extinderea constantelor și a funcțiilor. Acest lucru poate fi realizat prin utilizarea funcției const si utilizare funcții, respectiv. Anterior, acest operator era limitat doar la clasă.

Caracteristici depreciate

Apelați din context incompatibil

Când încercați să accesați în mod static o metodă non-statică sau o metodă statică utilizând contextul de obiect, aceasta va genera imediat E_DEPRECATED eroare.

class helloWorld () static public hiWorld ()  $ hello = nou helloWorld (); $ Hello-> hiWorld (); // Înainte de PHP 5.6 E_STRICT eroare // Din PHP 5.6 eroare E_DEPRECATED

$ HTTP_RAW_POST_DATA

$ HTTP_RAW_POST_DATA este depreciat acum. Ar trebui să folosim php: // input in schimb.

Setarea codării

Odată cu lansarea default_charset () configurare, opțiunea respectivă este depășită inconv și mbstring.

Lista funcțiilor modificate

O listă a tuturor funcțiilor modificate din PHP 5.6 poate fi găsită în ultimul manual PHP.

Lista funcțiilor noi

O listă cu toate funcțiile noi din PHP 5.6 poate fi găsită în această secțiune a manualului PHP.

Concluzie

În timp ce echipa PHP lucrează la următoarea versiune de PHP, aș spune că PHP 5.6 a fost livrat cu o mulțime de îmbunătățiri și adăugiri de caracteristici și oferă una dintre cele mai ușoare upgrade-uri de la versiunile anterioare.

Nu uitați să ne informați despre orice întrebări sau comentarii pe care le puteți avea în feedul de mai jos.

Cod