PHP 5.6 Was ist neu?

Es hat lange gedauert, aber wir haben endlich eine neue Version von PHP. Es bietet einige nette neue Funktionen und Verbesserungen, während andere Funktionen entfernt oder als veraltet markiert wurden.

Lassen Sie uns eintauchen und einen Blick auf die neueste Version werfen.

Rückwärts inkompatible Änderungen

In diesem Teil werde ich rückwärts inkompatible Änderungen auflisten. Der größte Teil Ihres PHP5-Codes funktioniert jedoch ohne Änderungen in PHP 5.6.

json_decode

Wie in der JSON-Spezifikation angegeben, json_decode () entfernt alle nicht-kleingeschriebenen Varianten der JSON-Literale wie true, false und null. Es wird auch eingestellt json_last_error () entsprechend.

GMP-Ressourcen

Wenn Sie nicht sicher sind, was GNU Multiple Precision (GMP) in PHP ist, dann würde ich Ihnen raten, sich diesen Artikel auf PHP.net anzusehen. GMP-Ressourcen sind in PHP 5.6 Objekte. Sie müssen in Ihrem vorhandenen Code keine Änderungen vornehmen, es sei denn, Sie überprüfen explizit eine Ressource is_resource ().

Mcrypt

Alle Mcrypt-Funktionen, die Schlüssel und IVs erwarten, akzeptieren keine Schlüssel oder IVs mit falscher Größe. Diese Funktionen umfassen mcrypt_encrypt (), mcrypt_decrypt (), mcrypt_cbc (), mcrypt_cfb (), mcrypt_ecb (), mcrypt_generic (), und mcrypt_ofb ().

Array-Werte und Überschreiben

Wenn Sie vor PHP 5.6 ein Array in der Klasseneigenschaft mit expliziten und impliziten Schlüsseln deklarierten, wurde der Array-Wert unbemerkt überschrieben, wenn der explizite Schlüssel einem sequenziellen impliziten Schlüssel entsprach.

Klasse halloWorld const ONE = 1; public $ array = [self :: ONE => 'Eclipse', 'Sublime', 'PHPStorm',];  $ hello = new helloWorld (); print_r ($ hallo); // Vor dem PHP 5.6-Array ('Sublime', 'PHPStorm') // Das PHP 5.6-Array ('Eclipse', 'Sublime', 'PHPStorm')

Neue Funktionen in PHP 5.6

Konstante skalare Ausdrücke

Mit dem Release von PHP 5.6 ist es möglich, einen Skalarausdruck bereitzustellen, der sowohl numerische als auch String-Literale enthält. In früheren Versionen von PHP wurde erwartet, dass es sich um einen statischen Wert von Konstantenfunktionsargumenten und der Deklaration von Eigenschaften handelt.

const ONE = 1; // Skalarausdruck in konstantem const TWO = ONE * 2; class helloWorld // Skalarausdruck in Eigenschaft const THREE = TWO + 1; // Skalarausdruck in Methoden public hallo f ($ a = ONE + self :: THREE) return $ a;  Echo (neue HalloWelt) -> Hallo (). "\ n";

Variadic Funktionen über "…"

Früher haben wir verwendet func_get_args () Um alle Argumente zu erhalten, die in einem Funktionsaufruf verfügbar sind, kann dies mit PHP 5.6 entfernt werden, da wir diese Möglichkeit mit dem Befehl leicht erhalten können Operator.

function myTools ($ name,… $ tools) Echo "Name:". $ name. '
'; Echo "My Tool Count:". zählen (Werkzeuge); myTools ('Avinash', 'Eclipse'); // Ausgabe: // Name: Avinash // Meine Werkzeuganzahl: 1 myTools ('Avinash', 'Eclipse', 'Sublime'); // Ausgabe: // Name: Avinash // Mein Tool Count: 2 myTools ('Avinash', 'Eclipse', 'Sublime', 'PHPStorm'); // Ausgabe: // Name: Avinash // Meine Werkzeuganzahl: 3

Argument Auspacken

Wir können denselben Operator verwenden () um ein Argument zu entpacken, bei dem es sich entweder um ein Array oder um eine Gruppe von verfahrbaren Objekten handelt. 

Funktion myTools ($ name, $ tool1, $ tool2, $ tool3) Echo "Name:". $ name. '
'; echo "Tool1:", $ tool1. '
'; echo "Tool2:", $ tool2. '
'; echo "Tool3:", $ tool3; $ myTools = ['Eclipse', 'Sublime', 'PHPStorm']; myTools ('Avinash',… $ myTools); // Ausgabe: // Name: Avinash // Tool1: Eclipse // Tool1: Sublime // Tool1: PHPStorm

** Abkürzung

Das ** Operator wurde für die Potenzierung hinzugefügt. Wir haben Unterstützung für den Operator für Kurzwörter ebenso leicht.

Echo 2 ** 3; Echo "
"; $ a = 2; $ a ** = 3; Echo $ a; // Ausgabe // 8 // 8

Beachten Sie, dass die Reihenfolge der Operationen mit diesem Operator zum Tragen kommt. Bitte schauen Sie sich das folgende Beispiel für ein klares Verständnis an:

Echo 2 ** 2 ** 4;

Sie können erwarten, dass es 256 zurückgibt, da die Gruppierung so aussehen würde (2 ** 2) ** 4, Dies ist hier jedoch nicht der Fall. Das tatsächliche Ergebnis wäre 65.536, da die Gruppierung von rechts nach links erfolgen würde und es als parsen würde 2 ** (2 ** 4).

phpdbg

In PHP 5.6 wurde ein interaktiver Debugger namens phpdbg hinzugefügt. Bitte besuchen Sie das offizielle Dokument für phpdbg.

Dieser phpdbg-Debugger ist als SAPI-Modul implementiert.

__Debug-Informationen()

Mit einer neuen, in PHP 5.6 hinzugefügten magischen Methode können Sie die Eigenschaften und Werte eines Objekts ändern, wenn das Objekt mit ausgegeben wird var_dump ().

class demoDebugInfo () private $ val; öffentliche Funktion __construct ($ val) $ this-> val = $ val;  public function __debuginfo () return ['iamchanged' => $ this-> val + 3; ];  $ debugInfo = new demoDebugInfo (50); // Wir erhalten ein geändertes Array, das von der Megic-Methode __debuginfo zurückgegeben wird. var_dump ($ debugInfo);

Standardzeichencodierung

Der Standardzeichensatz für htmlentities (), html_entity_decode () und htmlspecialchars () Funktionen können mit default_charset () gesetzt werden.

Upload großer Dateien

Es ist möglich, eine Datei größer als 2 GB hochzuladen.

php: // input ist wiederverwendbar

php: // input kann so oft verwendet werden, wie Sie Daten lesen möchten. Diese Funktion bietet eine erhebliche Reduzierung des Speichers im Vergleich zum Lesen POST Daten.

Verwenden Sie die Funktion und verwenden Sie const

Das benutzen Operator wurde angeboten, um die Erweiterung von Konstanten und Funktionen zu unterstützen. Dies kann mithilfe von durchgeführt werden const und das benutzen bzw. Funktionen. Früher war dieser Operator auf die Klasse beschränkt.

Veraltete Funktionen

Aufruf aus nicht kompatiblem Kontext

Wenn Sie versuchen, auf eine nicht statische Methode statisch oder auf eine statische Methode unter Verwendung des Objektkontexts zuzugreifen, wird sofort die E_DEPRECATED Error.

Klasse helloWorld () public static hiWorld ()  $ hello = new helloWorld (); $ hello-> hiWorld (); // Vor PHP 5.6 E_STRICT-Fehler // Ab PHP 5.6 E_DEPRECATED-Fehler

$ HTTP_RAW_POST_DATA

$ HTTP_RAW_POST_DATA ist jetzt veraltet. Wir sollten verwenden php: // eingabe stattdessen.

Kodierungseinstellung

Mit dem Start des default_charset () Konfiguration ist die zugehörige Option für veraltet iconv und mbstring.

Liste der geänderten Funktionen

Eine Liste aller geänderten Funktionen in PHP 5.6 finden Sie im neuesten PHP-Handbuch.

Liste der neuen Funktionen

Eine Liste aller neuen Funktionen in PHP 5.6 finden Sie in diesem Abschnitt des PHP-Handbuchs.

Fazit

Während das PHP-Team an der nächsten Version von PHP arbeitet, würde ich sagen, dass PHP 5.6 eine Reihe von Verbesserungen und Funktionserweiterungen enthält und eine der einfachsten Upgrades von früheren Versionen bietet.

Vergessen Sie nicht, uns Ihre Fragen oder Kommentare mitzuteilen, die Sie im Feed unten haben.