Detaillierte Erläuterung der neuen Funktionen von PHP7
Dieses Mal werde ich die neuen Funktionen von PHP7 zusammenfassen. Das Folgende ist ein praktischer Fall.
Neue PHP7-Funktionen
Skalare Typdeklaration (erfordert, dass der Parameter ein bestimmter Typ ist. Wenn der Parametertyp nicht übereinstimmt, ist dies ein schwerwiegender Fehler Fehler tritt in PHP5 auf, PHP7 löst eine TypeError-Ausnahme aus.
hat zwei Modi: obligatorisch (Standard) und strikt. Typparameter sind:
2. int
1. Klassenname
Ausgabe:
int(9)
<span style="font-size:18px;">function sumOfInts(int ...$ints) { return array_sum($ints); } var_dump(sumOfInts(2, '3', 4.1));</span>
Deklaration des Rückgabetyps
-Deklaration gibt den Typ des Rückgabewerts der Funktion an. Die verfügbaren Typen sind dieselben wie die in der Parameterdeklaration verfügbaren.
<span style="font-size:18px;"><?php function arraysSum(array ...$arrays): array { return array_map(function(array $array): int { return array_sum($array); }, $arrays); } print_r(arraysSum([1,2,3], [4,5,6], [7,8,9])); 以上例程会输出: Array ( [0] => 6 [1] => 15 [2] => 24 )</span>
NULL-Koaleszenzoperator
Wenn die Variable existiert und der Wert nicht NULL ist, gibt sie ihren eigenen Wert zurück, andernfalls gibt sie ihren zweiten Parameter zurück
Die Ergebnisse der oberen und unteren Ausdrücke sind gleich.
$username = $_GET['user'] ?? 'nobody';
$username = isset($_GET['user']) ? $_GET['user'] : 'nobody';
Vergleichsoperatoren kombinieren
wird verwendet, um zwei Ausdrücke zu vergleichen. Wenn $a größer, gleich oder kleiner als $b ist, wird 1, 0 bzw. -1 zurückgegeben. Zum Beispiel:
<span style="font-size:18px;"><?php // Integers echo 1 <=> 1; // 0 echo 1 <=> 2; // -1 echo 2 <=> 1; // 1 // Floats echo 1.5 <=> 1.5; // 0 echo 1.5 <=> 2.5; // -1 echo 2.5 <=> 1.5; // 1 // Strings echo "a" <=> "a"; // 0 echo "a" <=> "b"; // -1 echo "b" <=> "a"; // 1 ?></span>
Anonyme Klasse durch define() Durch die Unterstützung einer neuen Klasse zum Instanziieren einer anonymen Klasse kann dies geschehen Wird verwendet, um einige Vervollständigungsklassen zu ersetzen, die nur einmal verwendet werden
<?php define('ANIMALS', [ 'dog', 'cat', 'bird' ]); echo ANIMALS[1]; // outputs "cat" ?> php5.6 中 仅能通过const 定义 <?php const $a = [ 'a','b','c', ]; echo $a[1] ; //输出 “b” ?>
Filterung für unserialize() bereitstellen
IntlChar
Die neu hinzugefügte IntlChar-Klasse soll mehr ICU-Funktionen verfügbar machen. Diese Klasse definiert sich selbst. Es gibt viele statische Methoden zum Betreiben von Unicode-Zeichen in mehreren Zeichensätzen
Wenn Sie diese Klasse nutzen möchten, müssen Sie zuerst die Intl-Erweiterung installieren<span style="font-size:18px;"><?php // 把所有的对象转换为 __PHP_Incomplete_Class object $data = unserialize($foo, ["allowed_classes" => false]); // 除了MyClass,MyClass2 都转换为 into __PHP_Incomplete_Class object $data = unserialize($foo, ["allowed_classes" => ["MyClass", "MyClass2"]); // 默认的行为,接受所有的参数 $data = unserialize($foo, ["allowed_classes" => true]); </span>
Erwartet
soll eine abwärtskompatible und erweiterte Methode der vorherigen Assert()-Methode sein, die das Aktivieren von Assertionen in einer Produktionsumgebung zum Nulltarif macht und die Möglichkeit bietet, charakteristische Ausnahmen auszulösen, wenn Assertionen fehlschlagen.
Assert() ist nun ein Sprachkonstrukt, das es ermöglicht, dass das erste Argument ein Ausdruck und nicht nur eine auszuwertende Zeichenfolge oder ein zu testender Boolescher Wert ist
Verwendung Verwenden Sie diese Option, um eine Reihe von Klassen
wie folgt zu deklarieren: Der Generator-Rückgabeausdruck
<span style="font-size:18px;"><?php // Pre PHP 7 code use some\namespace\ClassA; use some\namespace\ClassB; use some\namespace\ClassC as C; use function some\namespace\fn_a; use function some\namespace\fn_b; use function some\namespace\fn_c; use const some\namespace\ConstA; use const some\namespace\ConstB; use const some\namespace\ConstC; // PHP 7+ code use some\namespace\{ClassA, ClassB, ClassC as C}; use function some\namespace\{fn_a, fn_b, fn_c}; use const some\namespace\{ConstA, ConstB, ConstC}; ?> </span>
Ein Generator kann an einen anderen Generator delegieren Das Gerät
lautet wie folgt:
<span style="font-size:18px;"><?php $gen = (function() { yield 1; yield 2; return 3; })(); foreach ($gen as $val) { echo $val, PHP_EOL; } echo $gen->getReturn(), PHP_EOL;// 换行,为了提高源码可读性 以上例程会输出: 1 2 3 </span>
Neue Ganzzahldivisionsfunktion intp() lautet wie folgt:
<span style="font-size:18px;"><?php function gen() { yield 1; yield 2; yield from gen2(); } function gen2() { yield 3; yield 4; } foreach (gen() as $val) { echo $val, PHP_EOL; } ?> 以上例程会输出: 1 2 3 4 </span>
Sitzungsoptionen
kann jetzt einen Array-Parameter über session_start( ), Sie können eine Sitzung über die Konfigurationsanweisung in php.ini schreiben. Die Parameter unterstützen session.lazy_write, read_and_close, Cache_limiter usw.
wie folgt:
<span style="font-size:18px;"><?php var_dump(intp(10, 3)); ?> 以上例程会输出: int(3) </span>
Neu hinzugefügte preg_replace_callback_array()-Funktion
, die eine bessere Leistung als preg_replace_callback() erbringen kann
<span style="font-size:18px;"><?php session_start([ 'cache_limiter' => 'private', 'read_and_close' => true, ]); ?> </span>
Bitte beachten Sie Folgendes für die spezifische Verwendung:
random_int()
list() unterstützt nicht mehr das automatische Entpacken von
Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung der neuen Funktionen von PHP7. 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



So beheben Sie das Problem, dass das Plugin in PHP 7.0 nicht installiert ist: Überprüfen Sie die Plugin-Konfiguration und aktivieren Sie das Plugin. Starten Sie PHP neu, um die Konfigurationsänderungen zu übernehmen. Überprüfen Sie die Berechtigungen der Plugin-Datei, um sicherzustellen, dass sie korrekt sind. Installieren Sie fehlende Abhängigkeiten, um sicherzustellen, dass das Plugin ordnungsgemäß funktioniert. Wenn alle anderen Schritte fehlschlagen, erstellen Sie PHP neu. Weitere mögliche Ursachen sind inkompatible Plugin-Versionen, das Laden der falschen Version oder PHP-Konfigurationsprobleme.

PHP8.3 veröffentlicht: Überblick über neue Funktionen Da sich die Technologie weiterentwickelt und sich ändern muss, werden Programmiersprachen ständig aktualisiert und verbessert. PHP ist eine in der Webentwicklung weit verbreitete Skriptsprache und wurde ständig verbessert, um Entwicklern leistungsfähigere und effizientere Tools zur Verfügung zu stellen. Die kürzlich veröffentlichte PHP 8.3-Version bringt viele lang erwartete neue Funktionen und Verbesserungen. Werfen wir einen Blick auf einen Überblick über diese neuen Funktionen. Initialisierung von Nicht-Null-Eigenschaften Wenn in früheren Versionen von PHP einer Klasseneigenschaft nicht explizit ein Wert zugewiesen wurde, ist es ihr Wert

Eine ausführliche Analyse der neuen Funktionen von PHP8, um Ihnen zu helfen, die neueste Technologie zu beherrschen. Im Laufe der Zeit hat sich die Programmiersprache PHP ständig weiterentwickelt und verbessert. Die kürzlich veröffentlichte PHP8-Version bietet Entwicklern viele spannende neue Funktionen und Verbesserungen, die unsere Entwicklungsarbeit komfortabler und effizienter machen. In diesem Artikel analysieren wir die neuen Funktionen von PHP8 eingehend und stellen spezifische Codebeispiele bereit, die Ihnen helfen, diese neuesten Technologien besser zu beherrschen. Der JIT-Compiler PHP8 führt die JIT-Kompilierung (Just-In-Time) ein

Zu den gängigen Lösungen für PHP-Serverumgebungen gehört die Sicherstellung, dass die richtige PHP-Version installiert ist und relevante Dateien in das Modulverzeichnis kopiert wurden. Deaktivieren Sie SELinux vorübergehend oder dauerhaft. Überprüfen und konfigurieren Sie PHP.ini, um sicherzustellen, dass die erforderlichen Erweiterungen hinzugefügt und korrekt eingerichtet wurden. Starten oder starten Sie den PHP-FPM-Dienst neu. Überprüfen Sie die DNS-Einstellungen auf Auflösungsprobleme.

So setzen Sie die Berechtigungen von Unixsocket automatisch nach dem Neustart des Systems. Jedes Mal, wenn das System neu startet, müssen wir den folgenden Befehl ausführen, um die Berechtigungen von Unixsocket: sudo ...

Im Vergleich zu PHP7 bietet PHP8 einige Vorteile und Verbesserungen in Bezug auf Leistung, neue Funktionen und Syntaxverbesserungen, Typsystem, Fehlerbehandlung und Erweiterungen. Die Wahl der zu verwendenden Version hängt jedoch von Ihren spezifischen Anforderungen und Projektumständen ab. Detaillierte Einführung: 1. Leistungsverbesserung: PHP8 führt den Just-in-Time-Compiler (JIT) ein, der die Ausführungsgeschwindigkeit des Codes verbessern kann. 2. Neue Funktionen und Syntaxverbesserungen. PHP8 unterstützt die Deklaration benannter Parameter und optionaler Parameter. Durch die flexiblere Gestaltung von Funktionen werden anonyme Klassen, Typdeklarationen von Eigenschaften usw. eingeführt.

Zu den neuen Funktionen von PHP8 gehören JIT-Compiler, Typableitung, benannte Parameter, Union-Typen, Eigenschaften, Verbesserungen bei der Fehlerbehandlung, Unterstützung für asynchrone Programmierung, neue Standardbibliotheksfunktionen und anonyme Klassenerweiterungen. Detaillierte Einführung: 1. JIT-Compiler, PHP8 führt den JIT-Compiler ein, der eine wichtige Leistungsverbesserung darstellt. Der JIT-Compiler kann einige hochfrequente Ausführungscodes in Echtzeit kompilieren und optimieren, wodurch die Ausführungsgeschwindigkeit verbessert wird führt die Typinferenzfunktion ein, die es Entwicklern ermöglicht, beim Deklarieren von Variablen usw. automatisch den Typ von Variablen abzuleiten.

Lokale Umgebung: Redhat6.7-System. Nginx1.12.1, PHP7.1.0, der Code verwendet das Yii2-Framework-Problem: Die lokale Website muss den Elasticsearch-Dienst verwenden. Wenn PHP Elasticsearch verwendet, das auf einem lokalen Server erstellt wurde, ist die lokale Last normal. Wenn ich den Elasticsearch-Service von AWS nutze, ist die Auslastung des lokalen Servers oft zu hoch. Überprüfen Sie die Nginx- und PHP-Protokolle und finden Sie keine Ausnahmen. Auch die Anzahl gleichzeitiger Verbindungen im System ist nicht hoch. Zu diesem Zeitpunkt dachte ich an ein Strace-Diagnosetool, das mir unser Chef erzählt hatte. Debugging-Prozess: Finden Sie einen PHP-Unterprozess idstrace-
