PHP 5.6 Vad är nytt

Det har gått länge, men vi har äntligen en ny version av PHP. Det ger några fina nya funktioner och förbättringar, medan andra funktioner har tagits bort eller markerat som avskräpta.

Låt oss dyka in och ta en titt på allt den senaste versionen erbjuder.

Bakåt inkompatibla ändringar

I den här delen kommer jag att notera bakåtkompatibla ändringar. Men det mesta av din PHP5-kod kommer att fungera i PHP 5.6 utan några ändringar.

json_decode

Enligt JSON-specifikationen, json_decode () kommer omedelbart att eliminera alla icke-små bokstäver av JSON-bokstäverna som sann, falsk och null. Det kommer också att ställa in json_last_error () följaktligen.

GMP Resources

Om du inte är säker på vad GNU Multiple Precision (GMP) i PHP är, så rekommenderar jag dig att titta på den här artikeln på PHP.net. I PHP 5,6 är GMP-resurser objekt. Du behöver inte göra några ändringar i din befintliga kod såvida du inte kontrollerar en resurs som uttryckligen används is_resource ().

mcrypt

Alla Mcrypt funktioner som förväntar sig att nycklar och IVs inte accepterar nycklar eller IV med fel storlek. Dessa funktioner inkluderar mcrypt_encrypt (), mcrypt_decrypt (), mcrypt_cbc (), mcrypt_cfb (), mcrypt_ecb (), mcrypt_generic (), och mcrypt_ofb ().

Array-värden och överskrivning

Innan PHP 5.6, när du deklarerade en array i klassegenskap med explicit och implicita nycklar, överskreds arrayvärdet tyst när den explicit nyckel var densamma som en sekventiell implicit nyckel.

klass helloWorld const ONE = 1; offentliga $ array = [self :: ONE => 'Eclipse', 'Sublime', 'PHPStorm',];  $ hej = ny helloWorld (); print_r ($ hello); // Före PHP 5.6 array ('Sublime', 'PHPStorm') // PHP 5.6 array ('Eclipse', 'Sublime', 'PHPStorm')

Nya funktioner i PHP 5.6

Konstanta skalära uttryck

Med utgåvan av PHP 5.6 är det möjligt att tillhandahålla ett skalärt uttryck som innehåller både numeriska och stränga bokstäver. I tidigare versioner av PHP förväntades det vara ett statiskt värde av konstanta funktionsargument och egenskapsdeklaration.

const ONE = 1; // Skalaruttryck i konstant konst TWO = ONE * 2; klass helloWorld // Scalar Expression i Property const THREE = TWO + 1; // Scalar Expression in Methods public hej f ($ a = ONE + själv: THREE) returnera $ a;  echo (new helloWorld) -> hej (). "\ n";

Variadiska funktioner via "..."

Tidigare använde vi func_get_args () för att få alla argument tillgängliga i ett funktionssamtal, men med PHP 5.6 kan detta tas bort eftersom vi enkelt kan få den anläggningen med ... operatör.

funktion myTools ($ namn, ... $ verktyg) echo "Name:". $ Name '.
'; echo "Min verktygsräkning:". räkna (verktyg); myTools ('Avinash', 'Eclipse'); // Utgång: // Namn: Avinash // Mitt verktygsantal: 1 myTools ('Avinash', 'Eclipse', 'Sublime'); // Utgång: // Namn: Avinash // Mitt verktygsantal: 2 myTools ('Avinash', 'Eclipse', 'Sublime', 'PHPStorm'); // Utgång: // Namn: Avinash // Mitt verktygsantal: 3

Argument Uppackning

Vi kan använda samma operatör (... ) för att packa upp ett argument som antingen är en array eller en uppsättning Traversable-objekt. 

funktion myTools ($ namn, $ tool1, $ tool2, $ tool3) echo "Name:". $ Name '.
'; echo "Tool1:", $ tool1. "
'; echo "Tool2:", $ tool2. "
'; eko "Tool3:", $ tool3; $ myTools = ['Eclipse', 'Sublime', 'PHPStorm']; myTools ('Avinash', ... $ myTools); // Utgång: // Namn: Avinash // Tool1: Eclipse // Tool1: Sublime // Tool1: PHPStorm

** stenografi

De ** operatör har lagts till för exponentiering. Vi har stöd för shorthand operatören lika enkelt.

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

Observera att operativsystemet kommer att spelas in med denna operatör. Titta på följande exempel för en klar förståelse:

eko 2 ** 2 ** 4;

Du kan förvänta dig att det återkommer 256 eftersom grupperingen skulle vara (2 ** 2) ** 4, men det är inte fallet här. Det verkliga resultatet skulle vara 65 536, eftersom grupperingen skulle vara från höger till vänster och det kommer att tolka som 2 ** (2 ** 4).

phpdbg

En interaktiv debugger som heter phpdbg har lagts till i PHP 5.6. Besök det officiella dokumentet för phpdbg.

Denna phpdbg-debugger implementeras som en SAPI-modul.

__Felsöknings information()

En ny magisk metod som läggs till i PHP 5.6 låter dig ändra egenskaper och värden för ett objekt när objektet matas ut med var_dump ().

klass demoDebugInfo () privat $ val; offentlig funktion __construct ($ val) $ this-> val = $ val;  allmän funktion __debuginfo () return ['iamchanged' => $ this-> val + 3; ];  $ debugInfo = ny demoDebugInfo (50); // Vi kommer att få ändrad array som returneras av __debuginfo megic-metoden. var_dump ($ DebugInfo);

Standard teckenkodning

Standard teckenuppsättning för htmlentities (), html_entity_decode () och htmlspecialchars () funktioner kan ställas in med default_charset ().

Stor filuppladdning

Det går att ladda upp en fil som är större än 2 GB.

php: // ingången är återanvändbar

php: // input kan användas så många gånger du vill läsa data. Den här funktionen ger en stor minskning av minnet jämfört med läsning POSTA data.

använd funktion och använd const

De använda sig av operatören har erbjudits stödja utvidgningen av konstanter och funktioner. Detta kan utföras med hjälp av const och den använda sig av funktioner, respektive. Tidigare var denna operatör begränsad till endast klass.

Utfällda funktioner

Ring från oförenlig kontext

När du försöker komma åt en icke-statisk metod statiskt eller en statisk metod som använder objektkontext, genererar den genast E_DEPRECATED fel.

klass helloWorld () offentlig statisk hiWorld ()  $ hej = ny helloWorld (); $ Hello-> hiWorld (); // Före PHP 5.6 E_STRICT error // Från PHP 5.6 E_DEPRECATED error

$ HTTP_RAW_POST_DATA

$ HTTP_RAW_POST_DATA avlägsnas nu. Vi borde använda php: // ingång istället.

Kodningsinställning

Med lanseringen av default_charset () konfiguration är det relaterade alternativet avstängt för iconv och mbstring.

Lista över ändrade funktioner

En lista över alla ändrade funktioner i PHP 5.6 finns i den senaste PHP-handboken.

Lista över nya funktioner

En lista över alla nya funktioner i PHP 5.6 finns i detta avsnitt i PHP Manual.

Slutsats

Medan PHP-teamet arbetar med nästa version av PHP, skulle jag säga att PHP 5.6 har levererats med en hel del förbättringar och funktionstillägg, och det erbjuder en av de enklaste uppgraderingarna från tidigare versioner.

Glöm inte att meddela oss om eventuella frågor eller kommentarer du kan ha i foderet nedan.