Einführung in die neuen Funktionen von PHP 7.2
Der Inhalt, der in diesem Artikel mit Ihnen geteilt wird, handelt von der Einführung der neuen Funktionen von PHP 7.2. Er hat einen gewissen Referenzwert.
PHP 7.2 wurde im November offiziell veröffentlicht 30. 2017. . Diese Version enthält neue Features, Funktionen und Optimierungen, die uns helfen, besseren Code zu schreiben. In diesem Artikel werde ich einige der interessantesten Sprachfunktionen von PHP 7.2 vorstellen.
Sie können die vollständige Liste der Änderungen auf der Seite „Anfragen für Kommentare“ einsehen.
Kernverbesserungen
Parametertypdeklaration
Ab PHP5 können wir den erwarteten deklarierten Typ von Funktionsparametern angeben. Wenn der falsche Argumenttyp übergeben wird, gibt PHP einen Fehler aus.
Parametertypdeklaration (auch Typhinweis genannt) gibt die Parametertypen an, die voraussichtlich an Funktionen oder Klassenmethoden übergeben werden.
Hier ist ein Beispiel:
class MyClass { public $var = 'Hello World'; }$myclass = new MyClass;function test(MyClass $myclass){ return $myclass->var; }echo test($myclass);
In diesem Code erfordert die Testfunktion eine MyClass-Instanz. Falsche Parameterdatentypen führen zu einem schwerwiegenden Fehler.
Fatal error: Uncaught TypeError: Argument 1 passed to test() must be an instance of MyClass, string given, called in /app/index.php on line 12 and defined in /app/index.php:8
Seit PHP 7.2 können Typhinweise für Objektdaten verwendet werden, und diese Verbesserung ermöglicht die Verwendung generischer Objekttypen als Parameter einer Funktion oder Methode. Hier ist ein Beispiel:
class MyClass { public $var = ''; }class FirstChild extends MyClass { public $var = 'My name is Jim'; }class SecondChild extends MyClass { public $var = 'My name is John'; }$firstchild = new FirstChild;$secondchild = new SecondChild;function test(object $arg) { return $arg->var; }echo test($firstchild);echo test($secondchild);
Im obigen Beispiel haben wir die Testfunktion zweimal aufgerufen und jedes Mal ein anderes Objekt übergeben. Dies war in früheren PHP-Versionen beispiellos.
Typhinweise für PHP 7.0 und PHP 7.2 in Docker testen.
Deklaration des Objektrückgabetyps
Wenn der Variablentyp den erwarteten Typ des Funktionsparameters angibt, kann der Rückgabewerttyp auch den erwarteten Typ angeben.
Die Rückgabetypdeklaration gibt den erwarteten Typ an, den eine Funktion zurückgeben soll.
Seit PHP 7.2 können Objektdatentypen mithilfe von Rückgabetypen deklariert werden. Hier ist ein Beispiel:
class MyClass { public $var = 'Hello World'; } $myclass = new MyClass;function test(MyClass $arg) : object { return $arg; } echo test($myclass)->var;
Frühere PHP-Versionen haben den folgenden schwerwiegenden Fehler ausgegeben:
Fatal error: Uncaught TypeError: Return value of test() must be an instance of object, instance of MyClass returned in /app/index.php:10
Natürlich würde der PHP 7.2-Code „Hello World“ ausgeben.
Parametertyp-Generalisierung
PHP erlaubt derzeit keinen Unterschied zwischen den Parametertypen einer Unterklasse und ihrer übergeordneten Klasse oder Schnittstelle. Was bedeutet das?
Beziehen Sie sich auf den folgenden Code:
<?phpclass MyClass { public function myFunction(array $myarray) { /* ... */ } }class MyChildClass extends MyClass { public function myFunction($myarray) { /* ... */ } }
Hier haben wir den Parametertyp in der Unterklasse weggelassen. In PHP 7.0 wird die folgende Warnung erzeugt:
Warning: Declaration of MyChildClass::myFunction($myarray) should be compatible with MyClass::myFunction(array $myarray) in %s on line 8
Ab PHP 7.2 können wir Typen in Unterklassen ignorieren, ohne Code zu beschädigen. Mit dieser Lösung können wir eine Klasse in der Bibliothek aktualisieren, um Typhinweise zu verwenden, ohne alle ihre Unterklassen zu aktualisieren.
Nachgestellte Kommas in der Listensyntax
Die Verwendung eines nachgestellten Kommas für das letzte Element eines PHP-Arrays ist eine zulässige Syntax und wird manchmal empfohlen, um das Hinzufügen neuer Elemente zu vermeiden. Ein Fehler wegen fehlendem Komma ist aufgetreten. Seit PHP 7.2 können wir beim Gruppieren von Namespaces abschließende Kommas verwenden.
Siehe Nachgestellte Kommas in der Listensyntax für ein Gefühl für den RFC und einige Beispielcodes.
Sicherheitsverbesserungen
Argon2 beim Passwort-Hashing
Argon2 ist ein leistungsstarker Hashing-Algorithmus, der den Passwort-Hash-Algorithmus-Wettbewerb 2015 gewonnen hat, und PHP 7.2 wird als Ersatz für das sichere Bcrypt dienen Algorithmus.
In der neuen PHP-Version wurde die Konstante PASSWORD_ARGON2I eingeführt, die nun in der Funktionsreihe „password_*“ verwendet werden kann:
password_hash('password', PASSWORD_ARGON2I);
Im Gegensatz zu Bcrypt, das nur einen Kostenfaktor verwendet, verwendet Argon2 drei Kostenfaktoren, um sie wie folgt zu unterscheiden:
Definiert den Speicher-Overhead in KiB-Menge, der während der Hash-Berechnung verbraucht werden soll (Standard ist 1 << 10 oder 1024 KiB oder 1 MiB)
Definieren Sie den Zeitaufwand für die Anzahl der Iterationen des Hash-Algorithmus (Standardwert ist 2)
Parallelfaktor, der zum Festlegen des verwendet wird Anzahl paralleler Threads, die in Hash-Berechnungen verwendet werden (Standardwert Definieren Sie Standardkostenfaktoren für 2)
Die folgenden drei neuen Konstanten werden definiert:
PASSWORD_ARGON2_DEFAULT_MEMORY_COST
PASSWORD_ARGON2_DEFAULT_TIME_COST
PASSWORD_ARGON2_DEFAULT_THREADS
Hier ist ein Beispiel :
$options = ['memory_cost' => 1<<11, 'time_cost' => 4, 'threads' => 2]; password_hash('password', PASSWORD_ARGON2I, $options);
Suchen Sie nach Argon2-Passwort-Hashes. Weitere Informationen.
Libsodium wird Teil des PHP-Kerns
Ab Version 7.2 enthält PHP die Sodium-Bibliothek in seinem Kern. Libsodium ist eine plattform- und sprachübergreifende Bibliothek für Verschlüsselung, Entschlüsselung, Signierung, Passwort-Hashing und mehr.
Diese Bibliothek wurde zuvor über PECL bereitgestellt.
Eine Liste der Libsodium-Funktionen finden Sie unter Schnellstart.
Siehe auch PHP 7.2: die erste Programmiersprache, die moderne Kryptographie zu ihrer Standardbibliothek hinzufügt.
Veraltete Funktionen
Hier ist eine Liste veralteter Funktionen und Features für PHP 7.2, die alle nach PHP 8.0 entfernt werden.
Die Funktion __autoload
in PHP 5.1 wurde durch spl_autoload_register ersetzt. Während der Kompilierung wird jetzt ein Verfallshinweis angezeigt.
Wenn ein schwerwiegender Fehler ausgelöst wird, $php_errormsg
werden lokale Variablen erstellt. In PHP 7.2 sollten stattdessen error_get_last und error_clear_last verwendet werden.
create_function()
Sie können eine Funktion mit einem Funktionsnamen erstellen und dabei die Funktionsparameter und den Funktionskörper als Liste der Funktion übergeben. Aufgrund von Sicherheitsproblemen und schlechter Leistung wird es als veraltet markiert und stattdessen die Kapselung empfohlen.
mbstring.func_overload
ini, das auf einen Wert ungleich Null gesetzt ist, wurde als veraltet markiert.
(unset) cast
ist ein Ausdruck, der immer null zurückgibt und nutzlos ist.
Wenn der zweite Parameter übergeben wird, analysiert parse_str() die Abfragezeichenfolge in ein Array, andernfalls analysiert es die lokale Symboltabelle. Aus Sicherheitsgründen wird nicht empfohlen, Variablen im Funktionsbereich dynamisch festzulegen, und die Verwendung von parse_str() ohne ein zweites Argument führt zu einer veralteten Benachrichtigung.
gmp_random()
ist plattformabhängig und wird veraltet sein. Verwenden Sie stattdessen gmp_random_bits() und gmp_random_rage().
each()
Das Iterieren über ein Array verhält sich sehr ähnlich wie foreach(), aber foreach() ist aus mehreren Gründen die bessere Wahl, beispielsweise weil es zehnmal schneller ist. Wenn Sie Ersteres in einer Schleife verwenden, wird nun eine Einstellungsaufforderung ausgegeben.
assert()
Die Funktion prüft die gegebene Behauptung und führt die entsprechende Verarbeitung durch, wenn das Ergebnis FALSCH ist. assert()
mit einem String-Argument ist aufgrund einer RCE-Sicherheitslücke jetzt veraltet. Die Option zend.assertion ini deaktiviert Assertionsausdrücke.
$errcontext
ist ein Array, das lokale Variablen enthält, wenn ein Fehler auftritt. Er kann als letzter Parameter der Fehlerhandlerfunktion set_error_handler() verwendet werden.
Was bedeutet PHP 7.2 für WordPress-Benutzer?
Laut der offiziellen WordPress-Statistikseite haben zum Zeitpunkt dieses Schreibens nur 19,8 % der WordPress-Benutzer ein Upgrade auf PHP 7 durchgeführt. Nur 5 % nutzen PHP 7.1. Sie sehen, dass mehr als 40 % der Benutzer immer noch PHP 5.6 verwenden, und was noch erschreckender ist, ist, dass mehr als 39 % der Benutzer eine PHP-Version verwenden, die nicht mehr unterstützt wird. Im Dezember 2016 änderte WordPress.org die offizielle Empfehlung für Benutzer von PHP 5.6 und empfahl nun die Verwendung von PHP 7 oder höher.
WordPress PHP 7.1-Statistiken
Die oben genannte Datenleistung ist nicht angenehm, da es den Anschein hat, dass PHP 7 schneller ist. Hier sind einige Statistiken:
Offizielle PHP-Benchmarks zeigen, dass PHP 7 es dem System ermöglicht, 2 Anfragen pro Sekunde auszuführen, was im Vergleich zu PHP 5.6 fast nur einer durchschnittlichen Latenz entspricht.
Christian Vigh hat auch einen PHP-Leistungstest-Vergleich veröffentlicht. Er hat herausgefunden, dass PHP 5.2 fast 400 % langsamer ist als PHP 7.
Wir haben 2018 Leistungsbenchmarks PHP 5.6 vs. PHP 7 vs. HHVM durchgeführt. Ähnlich wie beim obigen Benchmark haben wir festgestellt, dass PHP 7.2 im Vergleich zu PHP 5.6 fast dreimal so viele Transaktionen (Anfragen) pro Sekunde ausführen kann.
WordPress-Benchmark
WordPress 4.9.4 PHP 5.6 Benchmark-Ergebnis: 49,18 req/sec
WordPress 4.9.4 PHP 7.0 Benchmark-Ergebnis: 133,55 Anforderungen/Sek.
WordPress 4.9.4 PHP 7.1 Benchmark-Ergebnis: 134,24 Anforderungen/Sek.
WordPress 4.9.4 PHP 7.2 Benchmark-Ergebnis: 148,80 req/sec �
WordPress 4.9.4 HHVM Benchmark-Ergebnis: 144,76 req/sec
Viele Dinge lassen sich nur langsamer aktualisieren, da es viel Zeit in Anspruch nimmt, alle neuen Plugins und Themes von Drittanbietern zu testen, um sicherzustellen, dass sie ordnungsgemäß funktionieren. Oft geht es langsam, weil sie noch nicht fertig sind. Sie sind sich nicht sicher, welche PHP-Version Sie verwenden? Eine der einfachsten Möglichkeiten ist die Verwendung des Tools Pingdom oder der Google Chrome-Entwicklungstools. Im ersten HTTP-Anfrageheader wird normalerweise Ihre Version angezeigt.
PHP-Version prüfen
Dies setzt voraus, dass der Host den Wert des X-Powered-By-Headers nicht ändert. Wenn es geändert wird, können Sie die PHP-Versionsinformationen möglicherweise nicht sehen. In diesem Fall müssen Sie die Datei per FTP hochladen. Oder Sie fragen immer den Gastgeber.
Upgrade auf PHP 7.2
PHP 7.2 ist noch teilweise unfertig, aber Sie können es zunächst ausprobieren. Sie können Ihre lokale WordPress-Site testen oder Ihre Skripte in einer Docker-ähnlichen Umgebung überprüfen, und Sie können verschiedene PHP-Versionen über die Befehlszeile testen und vergleichen.
Fazit
Bereit für den Umstieg auf PHP 7.2? Aber zumindest hoffen wir, dass Sie zuerst auf PHP 7 oder höher umgestiegen sind. Wenn Sie jetzt noch nicht bereit sind, es zu testen, aktualisieren Sie Ihre Skripte, überprüfen Sie Ihren Code und sprechen Sie über Ihre ersten Erfahrungen mit PHP 7.2.
Verwandte Empfehlungen:
Kompilieren Sie PHP7.2 unter Windows und extrem erweitertem Judy
So installieren Sie PHP7.2 unter Linux
Instanzmethode zur Installation von PHP7.2 unter CentOS7yum
Das obige ist der detaillierte Inhalt vonEinführung in die neuen Funktionen von PHP 7.2. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



PHP 8.4 bringt mehrere neue Funktionen, Sicherheitsverbesserungen und Leistungsverbesserungen mit einer beträchtlichen Menge an veralteten und entfernten Funktionen. In dieser Anleitung wird erklärt, wie Sie PHP 8.4 installieren oder auf PHP 8.4 auf Ubuntu, Debian oder deren Derivaten aktualisieren. Obwohl es möglich ist, PHP aus dem Quellcode zu kompilieren, ist die Installation aus einem APT-Repository wie unten erläutert oft schneller und sicherer, da diese Repositorys in Zukunft die neuesten Fehlerbehebungen und Sicherheitsupdates bereitstellen.

Visual Studio Code, auch bekannt als VS Code, ist ein kostenloser Quellcode-Editor – oder eine integrierte Entwicklungsumgebung (IDE) –, die für alle gängigen Betriebssysteme verfügbar ist. Mit einer großen Sammlung von Erweiterungen für viele Programmiersprachen kann VS Code c

Wenn Sie ein erfahrener PHP-Entwickler sind, haben Sie möglicherweise das Gefühl, dass Sie dort waren und dies bereits getan haben. Sie haben eine beträchtliche Anzahl von Anwendungen entwickelt, Millionen von Codezeilen debuggt und eine Reihe von Skripten optimiert, um op zu erreichen

Dieses Tutorial zeigt, wie XML -Dokumente mit PHP effizient verarbeitet werden. XML (Extensible Markup-Sprache) ist eine vielseitige textbasierte Markup-Sprache, die sowohl für die Lesbarkeit des Menschen als auch für die Analyse von Maschinen entwickelt wurde. Es wird üblicherweise für die Datenspeicherung ein verwendet und wird häufig verwendet

JWT ist ein offener Standard, der auf JSON basiert und zur sicheren Übertragung von Informationen zwischen Parteien verwendet wird, hauptsächlich für die Identitätsauthentifizierung und den Informationsaustausch. 1. JWT besteht aus drei Teilen: Header, Nutzlast und Signatur. 2. Das Arbeitsprinzip von JWT enthält drei Schritte: Generierung von JWT, Überprüfung von JWT und Parsingnayload. 3. Bei Verwendung von JWT zur Authentifizierung in PHP kann JWT generiert und überprüft werden, und die Funktionen und Berechtigungsinformationen der Benutzer können in die erweiterte Verwendung aufgenommen werden. 4. Häufige Fehler sind Signaturüberprüfungsfehler, Token -Ablauf und übergroße Nutzlast. Zu Debugging -Fähigkeiten gehört die Verwendung von Debugging -Tools und Protokollierung. 5. Leistungsoptimierung und Best Practices umfassen die Verwendung geeigneter Signaturalgorithmen, das Einstellen von Gültigkeitsperioden angemessen.

Eine Zeichenfolge ist eine Folge von Zeichen, einschließlich Buchstaben, Zahlen und Symbolen. In diesem Tutorial wird lernen, wie Sie die Anzahl der Vokale in einer bestimmten Zeichenfolge in PHP unter Verwendung verschiedener Methoden berechnen. Die Vokale auf Englisch sind a, e, i, o, u und sie können Großbuchstaben oder Kleinbuchstaben sein. Was ist ein Vokal? Vokale sind alphabetische Zeichen, die eine spezifische Aussprache darstellen. Es gibt fünf Vokale in Englisch, einschließlich Großbuchstaben und Kleinbuchstaben: a, e, ich, o, u Beispiel 1 Eingabe: String = "TutorialPoint" Ausgabe: 6 erklären Die Vokale in der String "TutorialPoint" sind u, o, i, a, o, ich. Insgesamt gibt es 6 Yuan

Statische Bindung (statisch: :) implementiert die späte statische Bindung (LSB) in PHP, sodass das Aufrufen von Klassen in statischen Kontexten anstatt Klassen zu definieren. 1) Der Analyseprozess wird zur Laufzeit durchgeführt.

Was sind die magischen Methoden von PHP? Zu den magischen Methoden von PHP gehören: 1. \ _ \ _ Konstrukt, verwendet, um Objekte zu initialisieren; 2. \ _ \ _ Destruct, verwendet zur Reinigung von Ressourcen; 3. \ _ \ _ Call, behandeln Sie nicht existierende Methodenaufrufe; 4. \ _ \ _ GET, Implementieren Sie den dynamischen Attributzugriff; 5. \ _ \ _ Setzen Sie dynamische Attributeinstellungen. Diese Methoden werden in bestimmten Situationen automatisch aufgerufen, wodurch die Code -Flexibilität und -Effizienz verbessert werden.
