5 neue Funktionen in Php 7

5 neue Funktionen in Php 7

Autor Bio

Diese Fallstudie ist ein Gastbeitrag von Kaira Clark Works bei Xicom Technologies Ltd - einem CakePhp Web Application Development Company. Sie freut sich immer, ihre Leidenschaft für Marketing und Webentwicklung zu teilen. Wenn Sie planen, engagiertes Team für eine brillante Online -Präsenz einzustellen, ist sie diejenige für Sie.

5 neue Funktionen in Php 7

Alles in allem war 2015 ein wesentliches Jahr für alle PHP -Designer und nach elf Jahren die PHP -Anpassung an 5.0 Release, es gibt eine weitere Entwicklung, die auf lange Sicht auf Sie zukommt. Überlegen Sie sich jedoch über verschiedene Entwicklungshighlights, überlegen Sie, welche Methode Ihre PHP -Variante Ihre aktuelle PHP -Codebasis auswirkt? Bewerten Sie einfach, was sich in PHP wirklich verändert hat? Wie sicher können Sie mit PHP -Redesigns umgehen? Hier in diesem Beitrag erhalten Sie jede Lösung für Ihre Anfragen und werden am Ende erleben, was auf Sie zukommt, während Sie mit PHP 7 arbeiten. Lassen Sie uns jetzt in den Mittelpunkt der Prüfung kommen.

Ausführungsverbesserungen

Ausführungs -Upgrades sind höchstwahrscheinlich eine der Hauptmotivation unter den Entwicklern, warum jeder einen Bericht über jeden Server haben sollte, wenn eine Ankunft der PHP -stabilen Variante veröffentlicht wird. Das vom Telefon vorgestellte Center Refactoring macht RFC Php 7 schneller als HHVM. Die offiziellen Benchmarks sind bemerkenswert: Die meisten normalen Anwendungen, die auf PHP 5 ausgeführt werden.6 wird in jeder Veranstaltung auf PHP 7 doppelt so schneller ausführen.

Rückwärtskompatibilität Fallstricke

Lassen Sie uns nun ein Gespräch über einige wesentliche PHP.

  • Einheitliche variable Syntax

Löst eine Reihe jeder Inkonsistenz zum Zeitpunkt der Bewertung der Ausdrücke von variablen Variablen. Betrachten Sie den angezeigten Code unten:

 Klasse Company public $ emp_name = 'Madhur; public $ emp_des = 'Software -Ingenieur';  $ company = new Company (); $ property = ['first' => 'emp_name', 'zweiter' => 'info']; echo "nEmPounpel Name ist" ist " . $ Company-> $ Property ['First'] . "nn"; 

In Php 7 wird der Ausdruck $ Company-> $ Property ['First'] als $ company-> $ property ['First'] bewertet. Der Dolmetscher wird zuerst $ Company-> $ Property bewerten.

Dank unserer neuen Variablensyntax für einheitliche Uniform, die jeden Ausdruck gültig macht, was in der frühen PHP-Version nicht möglich war. Betrachten Sie die folgende Klasse für ein besseres Verständnis:

 Klassenfirma public static $ location = 'ncr'; öffentliche Funktion getbranches () return ['Jaipur' => function () return "östlich und west;, 'chandigarh' => function () return 'nord und südlich';]; öffentliche Funktion getbranchesof ($ Jemand) return $ this-> getbranches () [$ jemand]; öffentliche statische Funktion getNewCompany () return New Company (); 

PHP 7 ermöglicht es, verschachtelte Assoziationen mit unterschiedlichen Kombinationen zwischen den Operatoren zu erstellen:

$ Company = New Company (); echo "n" . $ Company-> getbranches () ['Jaipur'] () . "nn"; echo "n" . $ Company-> getbranchesof ('chandigarh') ()) . "nn"; 

Dieser Code -Snippet würde einen Parse -Fehler bei PHP 5 generieren, passt jedoch gut zu PHP 7.

Arbeiten mit fatalem Fehler mit mehreren "Standard" -Klauseln

Dies ist wiederum ein kontroverser Fall, der sich auf logische Fehler bezieht. Es wird in einem Switch nicht mehrere Standardklauseln verwendet, nur weil es nie Fehlerwarnungen aufgetreten ist. In PHP 7 werden Sie auf einen tödlichen Fehler stoßen: "Switch -Anweisungen enthalten nur eine Standardklausel".

Motorausnahmen in PHP

Engine -Ausnahmen funktionieren als Fehlerbehandlungsverfahren in der Anwendung. Alle Ihre vorhandenen tödlichen und wiederherstellbaren tödlichen Fehler werden also effizient durch Ausnahmen ersetzt, um alle genannten Fehler leicht zu fangen und Maßnahmen gegen solche Fehler zu ergreifen.

Beziehen wir uns auf den folgenden Code, wie Sie die Implementierung von Engine -Ausnahmen abwickeln, um die Kompatibilität rückwärts einfach zu halten:

 set_error_handler (Funktion ($ code, $ message) echo "Fehler $ Code:" . $ meldung . "nn"; ); Funktion a (ArrayObject $ b) return $ b;  ein Test"); echo "Hallo Welt"; 

Dieser Code erholt sich effektiv Fehler, die durch den Typfehlanpassung verursacht werden, wenn Sie die Funktion a () mithilfe von String als Parameter aufrufen.

Hallo Welt

Diese Ausführung wird fortgesetzt, da ein Fehler effizient behandelt wurde. In Php 7 wird eine TypeERRor -Ausnahme erzeugt, die kein Fehler ist. In diesem Fall wird ein benutzerdefinierter Fehlerhandler nicht aufgerufen, und dies ist die folgende Ausgabe, auf die Sie stoßen werden:


Fataler Fehler: Unbekundetes TypeRror: Argument 1 übergeben an a () muss eine Instanz von ArrayObject, Zeichenfolge, angegeben, in/vagrant/tests/test04 genannt sein.PHP in Zeile 12 und definiert in/vagrant/tests/test04.PHP: 7
Stack Trace:
#0/vagrant/tests/test04.PHP (12): a ('Test')
#1 main
in/vagrant/tests/test04 geworfen.PHP in Zeile 7

Hier wird eine Ausführung aufhören, da die Ausnahme nicht erwischt wird. Um dieses Problem zu überwinden, sollte man die Ausnahmen finden, indem man Try/Catch -Blöcke nutzt. Beachten Sie, dass sich die Ausnahmehierarchie ändern wird, um die neuen Engine -Ausnahmen mit minimalem Legacy -Code zu berücksichtigen. Siehe das folgende Muster unten:

  • Throwable Interface
    • Ausnahme implementiert Throwable
      • Errorexception erweitert die Ausnahme
      • RunTimeException erweitert die Ausnahme
    • Fehler implementiert Throwable
      • TypeError erweitert den Fehler
      • Parseerror erweitert den Fehler
      • AsSerTionError erweitert den Fehler

Das obige Muster bedeutet, dass eine neue Catch-All-Ausnahme jetzt ein Wurfgeschoss anstelle der Ausnahme ist.

Neu hinzugefügte Sprachfunktionen

Mal sehen, was es beinhaltet?
Neue Betreiber

1. -> Raumschiff/ Vergleichsbetreiber
Der Raumschiff -Operator wird bezeichnet als auch unter einem kombinierten Vergleichsbetreiber bekannt, der verwendet wird, um einen geketteten Vergleich zu ermöglichen.

Es hat einen folgenden Ausdruck:
$ a $ b

1. Der Ausdruck bewertet -1, wenn $ A kleiner als $ B ist
2. 0 Wenn $ a gleich $ B
3. 1 Wenn $ A größer als $ B ist.

Insgesamt kann es als folgender Ausdruck verwendet werden:

($ a $ b) ? 1: 0)

2 -> Der Null -Koalesce -Operator wird bezeichnet als ?? Dadurch wird prüft, ob ein Wert so eingestellt ist, dass er ihn verwendet.

Skalartyp Hinweise

Skalartyp-Hinweise sind eines der bekanntesten Attribute, die in der PHP-Sprache enthalten sind, die Ganzzahlen, Schwimmer, Saiten und booleschen Symbole als Typen für die Arbeit mit Funktionen und Methoden verwendet. Die Hinweise des Skalartyps sind standardmäßig nicht beschränkt.

Um dieses Problem zu überwinden, ist es daher wichtig, einen strengen Modus zu aktivieren, der Fehler auslöst, wenn ein illegaler Skalartyp als Argument bestanden wird. Beziehen wir uns auf den folgenden generierten Code:

 Funktion double (int $ value) return 2 * $ value;  $ a = double ("5"); var_dump ($ a); 

Um sicherzustellen, dass Ganzzahlen an eine doppelte Funktion übergeben werden dürfen, aktivieren Sie einen strengen Modus, indem Sie die Anweisungen deklarieren (strict_types = 1) Muster als erste Zeile in Ihrem Skript:

 declare (strict_types = 1); Funktion double (int $ value) return 2 * $ value;  $ a = double ("5"); var_dump ($ a); 

Dieser Code generiert a Fataler Fehler: Unbekundetes Typeerror: Argument 1 übergeben an double () sollte von der Typ Ganzzahl, Zeichenfolge gegeben sein.

Rückgabetyp Hinweise

Ein weiteres signifikantes neues Merkmal, das zu PHP 7 hinzugefügt wird, ist die extreme Fähigkeit, die Rückgabetypen sowie Funktionen zu ermöglichen. Das verhält sich als Skalartyp Hinweise. Achten Sie auf den untergenerierten Code:

 Funktion a (): bool return 1;  var_dump (a ()); 

Dieser Code -Snippet wird ohne Warnungen effizient ausgeführt, und der zurückgegebene Wert wird automatisch in das Bool -Format konvertiert. Durch die Aktivierung des strengen Modus wird ein tödlicher Fehler erzeugt:

Fataler Fehler: Unbekundetes TypeRror: Rückgabewert von a () muss von dem Typ boolean sein, Ganzzahl zurückgegeben

Diese Fehler sind eine Art Ausnahmen, die durch Verwendung von Try/Catch -Blöcken gefangen und behandelt werden.

Abschluss

Ich hoffe, Sie werden gerne mit allen neuen Versionen von PHP 7 zusammenarbeiten. Weiterlesen