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.
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.
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.
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 ()
.
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 ()
.
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')
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";
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
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
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)
.
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.
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 teckenuppsättning för htmlentities ()
, html_entity_decode ()
och htmlspecialchars ()
funktioner kan ställas in med default_charset ().
Det går att ladda upp en fil som är större än 2 GB.
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.
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.
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
avlägsnas nu. Vi borde använda php: // ingång
istället.
Med lanseringen av default_charset ()
konfiguration är det relaterade alternativet avstängt för iconv
och mbstring
.
En lista över alla ändrade funktioner i PHP 5.6 finns i den senaste PHP-handboken.
En lista över alla nya funktioner i PHP 5.6 finns i detta avsnitt i PHP Manual.
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.