Werfen wir einen Blick auf die wichtigsten neuen Funktionen von PHP7
PHP hat jetzt offiziell die RC5-Version von PHP7 veröffentlicht. Jetzt sind die wichtigsten Funktionen von PHP7 definitiv fertiggestellt. es wird keine Änderungen mehr geben. Bei den Iterationen einiger Folgeversionen handelt es sich hauptsächlich um Fehlerbehebungen, Optimierungen und Ähnliches. Lassen Sie uns über die wichtigsten Änderungen in PHP7 sprechen, auf die wir uns gefreut haben.
Vorschau auf neue Funktionen
ZEND引擎升级到Zend Engine 3,也就是所谓的PHP NG 增加抽象语法树,使编译更加科学 64位的INT支持 统一的变量语法 原声的TLS - 对扩展开发有意义 一致性foreach循环的改进 新增 <=>、**、?? 、\u{xxxx}操作符 增加了返回类型的声明 增加了标量类型的声明 核心错误可以通过异常捕获了 增加了上下文敏感的词法分析
Verwandte Lernempfehlungen: PHP Programmieren vom Anfänger bis zum Experten
Einige Funktionen entfernt
1. Einige alte Erweiterungen wurden entfernt und auf PECL migriert (z. B.: MySQL)
2. Unterstützung für SAPIs entfernt
3. Tags wie und language="php" wurden entfernt
4. Hexadezimale String-Konvertierung wurde abgeschafft
//PHP5 "0x10" == "16" //PHP7 "0x10" != "16"
5. HTTP_RAW_POST_DATA wurde entfernt (Sie können stattdessen php://input verwenden)
6 Statische Funktionen unterstützen den Aufruf einer nicht statischen Funktion nicht mehr über ein inkompatibles $this
$o = & new className{}. wird nicht mehr unterstützt.
Die Datei 7.php.ini hat # als Kommentar entfernt und verwendet ; zum Kommentieren
Einige Verhaltensänderungen
Konstruktoren mit demselben Namen in Funktionsdefinitionsparametern vom Typ
werden nicht mehr unterstützt (derzeit nicht entfernt, werden aber in Zukunft entfernt)
String, int, float und andere Schlüsselwörter können nicht als Klassennamen verwendet werden
func_get_args() erhält den Wert der aktuellen Variablen
function test ($num) { $num++; var_dump(func_get_args()[0]); }; test(1) //PHP5 int(1) //PHP7 int(2)
Hier sind einige Haupt- und Kernfunktionen, die für unseren PHPer wichtiger sind. Lassen Sie mich die wichtigen Funktionen vorstellen
PHP NG
Die neue PHP-Engine hat viele Stellen optimiert, und deshalb hat PHP7 offiziell eine bessere Leistung als PHP5.
Rekonstruktion der ZVAL-Struktur
Links ist der Zval von PHP5 (24 Bytes) und rechts der Zval von PHP7 (16 Bytes) ;
Es ist ersichtlich, dass der Zval von PHP7 komplizierter ist als der von PHP5, aber er kann von 24 Bytes auf 16 Bytes reduziert werden.
In der C-Sprache belegt jede Mitgliedsvariable von struct einen unabhängigen Speicherplatz, während sich die Mitgliedsvariablen in Union einen Speicherplatz teilen (Union wird häufig als Ersatz für struct in PHP7 verwendet). Obwohl es den Anschein hat, dass es viel mehr Mitgliedsvariablen gibt, ist daher der tatsächlich belegte Speicherplatz, von denen viele öffentlich sind, zurückgegangen.
Verwenden Sie das neue Zend Array, um die vorherige HashTale-Struktur zu ersetzen
Das am häufigsten verwendete, nützlichste, bequemste und flexibelste in unserem PHP Programme Es handelt sich um ein Array, und die unterste Ebene von PHP5 wird von HashTable implementiert. PHP7 verwendet den neuen Zend-Array-Typ, und die Leistung und Zugriffsgeschwindigkeit wurden erheblich verbessert!
Einige sehr häufig verwendete und kostengünstige Funktionen werden direkt zu Opcodes, die von der Engine unterstützt werden
call_user_function(_array) => ZEND_INIT_USER_CALL is_int/string/array/* => ZEND_TYPE_CHECK strlen => ZEND_STRLEN defined => ZEND+DEFINED
Verwendet neue Speicherzuweisungs- und Verwaltungsmethoden, um Speicherverschwendung zu reduzieren
Kernsortierung zend_sort Optimize
//PHP5 - 快速排序(非稳定排序) array(1 => 0, 0 => 0) //PHP7 - 快速排序+选择排序(稳定排序) array(0 => 0, 1 => 0)
Verwenden Sie die Auswahlsortierung für Elemente mit weniger als 16 Elementen, teilen Sie sie für Elemente mit mehr als 16 Elementen in 16er-Einheiten auf, verwenden Sie die Auswahlsortierung separat, kombinieren Sie sie dann alle und verwenden Sie die Schnellsortierung. Im Vergleich zur vorherigen Sortierung haben sich die internen Elemente von instabiler Sortierung zu stabiler Sortierung geändert, wodurch die Anzahl der Elementaustausche verringert, die Anzahl der Speicheroperationen verringert und die Leistung um 40 % verbessert wurde
Abstrakter Syntaxbaum
Wenn wir jetzt einen solchen Bedarf haben, müssen wir eine Syntaxerkennung für die PHP-Quelldatei durchführen und Codierungsstandards implementieren. Vor PHP5 gab es kein AST und Opcodes wurden direkt vom Parser generiert! Um dies zu erreichen, müssen wir einige externe PHP-Syntaxparser verwenden. PHP7 fügt AST hinzu. Wir können eine solche Erweiterung selbst implementieren und die von der Erweiterung bereitgestellten Funktionen verwenden, um die der Datei entsprechende AST-Struktur direkt abzurufen Wir können es identifizieren, sodass wir auf dieser Grundlage einige Optimierungen und Beurteilungen vornehmen können.
64-Bit-INT-Unterstützung
Unterstützt die Speicherung von Zeichenfolgen mit mehr als 2 GB
Unterstützt das Hochladen von Dateien mit mehr als 2 GB
Stellen Sie sicher, dass die Zeichenfolge vorhanden ist in [64-bit] ist 64bit auf allen Plattformen
Einheitliche Syntaxvariablen
$$foo['bar']['baz'] //PHP5 ($$foo)[‘bar']['baz'] //PHP7: 遵循从左到右的原则 ${$foo[‘bar']['baz']}
Verbesserungen in der foreach-Schleife
//PHP5 $a = array(1, 2, 3);foreach ($a as $v){var_dump(current($a));} int(2) int(2) int(2) $a = array(1, 2, 3);$b=&$a;foreach ($a as $v){var_dump(current($a));} int(2) int(3) bool(false) $a = array(1, 2, 3);$b=$a;foreach ($a as $v){var_dump(current($a));} int(1) int(1) int(1) //PHP7:不再操作数据的内部指针了 $a = array(1, 2, 3);foreach ($a as $v){var_dump(current($a))} int(1) int(1) int(1) $a = array(1, 2, 3);$b=&$a;foreach ($a as $v){var_dump(current($a)) int(1) int(1) int(1) $a = array(1, 2, 3);$b=$a;foreach ($a as $v){var_dump(current($a))} int(1) int(1) int(1)
Mehrere neue Operatoren
//<=> - 比较两个数的大小【-1:前者小于后者,0:前者等于后者,1:前者大于后者】 echo 1 <=> 2;//-1 echo 1 <=> 1;//0 echo 1 <=> 0;//1 // ** - 【a的b次方】 echo 2 ** 3;//8 //?? - 三元运算符的改进 //php5 $_GET['name'] ? $_GET['name'] : '';//Notice: Undefined index: … //php7 $_GET['name'] ?? '' -> ''; //\u{xxxx} - Unicode字符的解析 echo "\u{4f60}";//你 echo "\u{65b0}";//新
Deklaration des Rückgabetyps
function getInt() : int { return “test”; }; getInt(); //PHP5 #PHP Parse error: parse error, expecting '{'... //PHP7 #Fatal error:Uncaught TypeError: Return value of getInt() must be of the type integer, string returned
Deklaration des Skalartyps
function getInt(int $num) : int { return $num; }; getInt(“test”); //PHP5 #PHP Catchable fatal error: Argument 1 passed to getInt() must be an instance of int, string given… //PHP7 #Fatal error: Uncaught TypeError: Argument 1 passed to getInt() must be of the type integer, string given…
Kernfehler können durch Ausnahmen abgefangen werden
try { non_exists_func(); } catch(EngineException $e) { echo “Exception: {$e->getMessage();}\n”; } //这里用php7试了一下还是没法捕获,但是看鸟哥介绍说是可行的。。。 #Exception: Call to undefined function non_exists_func()
Kontextsensitive lexikalische Analyse
//PHP5 class Collection {public function foreach($arr) {}} #Parse error: parse error, expecting `"identifier (T_STRING)”'... //PHP7 class Collection { public function foreach($arr) {} public function in($arr){} public function where($condition){} public function order($condition){} } $collection = new Collection(); $collection->where()->in()->foreach()->order();
Das ist Ich habe im Grunde mein vorläufiges Verständnis von PHP7 abgeschlossen. Ich hoffe, dass ihr sie rechtzeitig korrigieren und mir Notizen machen könnt. hey-hey!
Das obige ist der detaillierte Inhalt vonWerfen wir einen Blick auf die wichtigsten 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.

Ursachen und Lösungen für Fehler Bei der Verwendung von PECL zur Installation von Erweiterungen in der Docker -Umgebung, wenn die Docker -Umgebung verwendet wird, begegnen wir häufig auf einige Kopfschmerzen ...

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.
