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.
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.
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.
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 ()
.
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 ()
.
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')
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";
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
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
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)
.
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.
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);
Der Standardzeichensatz für htmlentities ()
, html_entity_decode ()
und htmlspecialchars ()
Funktionen können mit default_charset () gesetzt werden.
Es ist möglich, eine Datei größer als 2 GB hochzuladen.
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.
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.
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
ist jetzt veraltet. Wir sollten verwenden php: // eingabe
stattdessen.
Mit dem Start des default_charset ()
Konfiguration ist die zugehörige Option für veraltet iconv
und mbstring
.
Eine Liste aller geänderten Funktionen in PHP 5.6 finden Sie im neuesten PHP-Handbuch.
Eine Liste aller neuen Funktionen in PHP 5.6 finden Sie in diesem Abschnitt des PHP-Handbuchs.
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.