PHP 5.6 Novità

È passato molto tempo, ma finalmente abbiamo una nuova versione di PHP. Offre alcune nuove funzionalità e miglioramenti, mentre altre funzionalità sono state rimosse o contrassegnate come deprecate.

Entriamo e diamo un'occhiata a tutto ciò che offre l'ultima versione.

Modifiche inverse all'indietro

In questa parte, inserirò le modifiche incompatibili con le versioni precedenti; tuttavia, la maggior parte del codice PHP5 funzionerà in PHP 5.6 senza alcuna modifica.

json_decode

Secondo le specifiche JSON, json_decode () eliminerà immediatamente tutte le varianti non minuscole dei valori letterali JSON come true, false e null. Inoltre, verrà impostato json_last_error () di conseguenza.

Risorse GMP

Se non sei sicuro di quale sia GNU Multiple Precision (GMP) in PHP, ti consiglio di guardare questo articolo su PHP.net. In PHP 5.6, le risorse GMP sono oggetti. Non è necessario apportare modifiche al codice esistente a meno che non si stia verificando l'utilizzo esplicito di una risorsa is_resource ().

mcrypt

Tutte le funzioni di Mcrypt che prevedono chiavi e IV non accettano chiavi o IV con dimensioni errate. Queste funzioni includono mcrypt_encrypt (), mcrypt_decrypt (), mcrypt_cbc (), mcrypt_cfb (), mcrypt_ecb (), mcrypt_generic (), e mcrypt_ofb ().

Valori di matrice e sovrascrittura

Prima di PHP 5.6, quando si dichiarava una matrice nella proprietà della classe con chiavi esplicite e implicite, il valore dell'array veniva sovrascritto automaticamente quando la chiave esplicita era la stessa di una chiave implicita sequenziale.

class helloWorld const ONE = 1; public $ array = [self :: ONE => 'Eclipse', 'Sublime', 'PHPStorm',];  $ hello = new helloWorld (); print_r ($ ciao); // Prima di PHP 5.6 array ('Sublime', 'PHPStorm') // PHP 5.6 array ('Eclipse', 'Sublime', 'PHPStorm')

Nuove funzionalità in PHP 5.6

Espressioni scalari costanti

Con il rilascio di PHP 5.6, è possibile fornire un'espressione scalare che include sia valori letterali numerici che stringhe. Nelle versioni precedenti di PHP, ci si aspettava che fosse un valore statico di argomenti di funzioni costanti e dichiarazione di proprietà.

const ONE = 1; // Espressione scalare in costante const DUE = UNO * 2; class helloWorld // Espressione scalare in Property const THREE = TWO + 1; // Espressione scalare nei metodi public hello f ($ a = ONE + self :: THREE) return $ a;  echo (new helloWorld) -> hello (). "\ n";

Funzioni variabili tramite "..."

Prima stavamo usando func_get_args () per ottenere tutti gli argomenti disponibili in una chiamata di funzione, ma con PHP 5.6, questo può essere rimosso dal momento che possiamo facilmente ottenere tale funzionalità con ... operatore.

function myTools ($ name, ... $ tools) echo "Name:". $ Name '.
'; echo "My Tool Count:". COUNT (strumenti); myTools ('Avinash', 'Eclipse'); // Output: // Nome: Avinash // My Tool Count: 1 myTools ('Avinash', 'Eclipse', 'Sublime'); // Output: // Nome: Avinash // My Tool Count: 2 myTools ('Avinash', 'Eclipse', 'Sublime', 'PHPStorm'); // Output: // Nome: Avinash // My Tool Count: 3

Argument Unpacking

Possiamo usare lo stesso operatore (... ) per decomprimere qualsiasi argomento che sia una matrice o un insieme di oggetti percorribili. 

function myTools ($ name, $ tool1, $ tool2, $ tool3) echo "Nome:". $ Name '.
'; echo "Tool1:", $ tool1. "
'; echo "Tool2:", $ tool2. "
'; echo "Tool3:", $ tool3; $ myTools = ['Eclipse', 'Sublime', 'PHPStorm']; myTools ('Avinash', ... $ myTools); // Output: // Nome: Avinash // Tool1: Eclipse // Tool1: Sublime // Tool1: PHPStorm

** Abbreviazione

Il ** l'operatore è stato aggiunto per la esponenziazione. Abbiamo il supporto per l'operatore di stenografia con la stessa facilità.

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

Si noti che l'ordine delle operazioni entra in gioco usando questo operatore. Si prega di dare un'occhiata al seguente esempio per una chiara comprensione:

echo 2 ** 2 ** 4;

Potresti aspettarti che restituisca 256 come sarebbe il raggruppamento (2 ** 2) ** 4, Ma non è questo il caso. Il risultato reale sarebbe 65.536, poiché il raggruppamento andrebbe da destra a sinistra e analizzerà come 2 ** (2 ** 4).

phpdbg

Un PHP debugger chiamato phpdbg è stato aggiunto in PHP 5.6. Si prega di visitare il documento ufficiale per phpdbg.

Questo debugger phpdbg è implementato come un modulo SAPI.

__informazioni di debug()

Un nuovo metodo magico aggiunto in PHP 5.6 consente di modificare le proprietà e i valori di un oggetto quando l'oggetto viene stampato utilizzando var_dump ().

class demoDebugInfo () private $ val; funzione pubblica __construct ($ val) $ this-> val = $ val;  public function __debuginfo () return ['iamchanged' => $ this-> val + 3; ];  $ debugInfo = new demoDebugInfo (50); // Otterremo array alterato che viene restituito dal metodo __debuginfo megic. var_dump ($ debuginfo);

Codifica caratteri predefinita

Il set di caratteri predefinito per htmlentities (), html_entity_decode () e htmlspecialchars () le funzioni possono essere impostate usando default_charset ().

Caricamento di file di grandi dimensioni

È possibile caricare un file più grande di 2 GB.

php: // input è riutilizzabile

php: // input può essere usato tutte le volte che vuoi leggere i dati. Questa funzione offre una notevole riduzione della memoria rispetto alla lettura INVIARE dati.

usa la funzione e usa const

Il uso l'operatore è stato offerto per supportare l'estensione di costanti e funzioni. Questo può essere eseguito usando il const e il uso funzioni, rispettivamente. In precedenza questo operatore era limitato alla sola classe.

Funzionalità deprecate

Chiama dal contesto incompatibile

Quando si tenta di accedere in modo statico a un metodo non statico o a un metodo statico che utilizza il contesto dell'oggetto, verrà immediatamente generato E_DEPRECATED errore.

class helloWorld () public static hiWorld ()  $ hello = new helloWorld (); $ Hello-> hiWorld (); // Before PHP 5.6 E_STRICT error // Da PHP 5.6 E_DEPRECATED errore

$ HTTP_RAW_POST_DATA

$ HTTP_RAW_POST_DATA è deprecato ora. Dovremmo usare php: // ingresso anziché.

Impostazione della codifica

Con il lancio del default_charset () configurazione, l'opzione correlata è deprecata per iconv e mbstring.

Elenco delle funzioni modificate

Un elenco di tutte le funzioni modificate in PHP 5.6 può essere trovato nell'ultimo PHP Manual.

Elenco di nuove funzioni

Un elenco di tutte le nuove funzioni in PHP 5.6 può essere trovato in questa sezione del manuale PHP.

Conclusione

Mentre il team di PHP sta lavorando alla prossima versione di PHP, direi che PHP 5.6 è stato spedito con una notevole quantità di miglioramenti e aggiunte di funzionalità e offre uno degli aggiornamenti più semplici delle versioni precedenti.

Non dimenticare di comunicarci eventuali domande o commenti che potresti avere nel feed qui sotto.