When will php8 be released? PHP developers are looking forward to it very much. On June 25, 2020, the PHP team released the first test version Alpha1 (PHP 8.0.0), which heralds the official launch of the PHP8 release cycle!
The official PHP 8.0.0 first version release announcement is as follows:
PHP 8 Alpha version released, download address:
https://www.php.net/archive/2020.php
Highlights of PHP 8.0.0:
PHP 8 is a new major version that introduces some major changes, as well as many new features and performance improvements. Here is a brief introduction to some highlights:
JIT, Just-In-Time, just-in-time compilation
The feature that everyone is most concerned about is none other than JIT. This feature has been in development for many years and has survived the major version series of PHP 5 and 7 (the PHP 6 project was aborted). It was not until March last year that it was finally confirmed by voting that it would enter PHP 8.
JIT is a compiler strategy (refer to the article: What is PHP JIT? PHP8 new features JIT graphic and text explanation), it expresses the code as an intermediate state, during operation It is converted into architecture-dependent machine code and executed on the fly. In PHP, this means that the JIT treats instructions generated by Zend VM as intermediate representations and executes them in architecture-dependent machine code. That is to say, it is no longer Zend VM that hosts the code, but the underlying CPU. .
Although PHP performance has been significantly improved since PHP 7.0 by optimizing the core data structure HashTable, strengthening certain opcodes in Zend VM, and continuously improving the Optimizer component of OPCache, in fact these optimizations It seems to have reached its limit. Now JIT starts from the bottom and is considered to be the best way to improve PHP performance.
For the performance comparison after the introduction of JIT (and the overall performance of PHP 8), you can refer to this month's Phoronix benchmark test (note: the test was conducted using the source code build version at the end of May).
Union Types, union type
Union Types support Receives multiple values of different types. It is a collection of two or more types. You can choose one of them when using it. The use of union types is very common in standard libraries in the open source ecosystem, including PHP. PHP's support for union types will allow more type information to be migrated from phpdoc to function signatures. It can be said that after generics, union types are the biggest breakthrough in the current type declaration system.
Attributes, annotation
The Attributes here are Annotations (annotations) in other languages provide a way to add metadata to a class without parsing the documentation block.
Learn more: PHP8 new features: Attributes
New static Return type
Although it is possible to return self, considering the nature of PHP's dynamic type, it will be more efficient to support static return types in PHP 8. Should be very useful to many developers.
WeakMap, weak mapping
WeakMaps allow creation from Mapping of objects to arbitrary values (similar to SplObjectStorage) without preventing garbage collection of the object used as the key. As long as the object is added to the WeakMap, the GC can reclaim the memory occupied by it when the condition is triggered.
In PHP 7.4, support for WeakReference (weak reference) has actually been introduced. However, raw weak references by themselves have limited use, and weak mappings are more commonly used in practice. Since there is no functionality provided to register a destruction callback, it is not possible to implement an efficient weak mapping on top of PHP weak references. A general use case for weak mapping is to associate data with individual object instances without forcing them to remain active, avoiding long-running processes needlessly occupying memory.
Regarding WeakMap/WeakReference, you can refer to the WeakRef part of this article. Although it is about JS, the principles are the same:
https:/ /www.html.cn/web/javascript/19449.html
For more related features, you can view:
In addition, I also noticed several features that are in the voting stage (that is, they may be incorporated into a certain version soon), such as match expression (match expression) and the use of @@ or #[] instead of < ;>’s proposals are worthy of attention:
It should be noted that PHP 8 is a major update version with some major changes, so it is best to check the UPGRADING document for related matters. In reality, however, many of these breaking changes were already introduced in previous 7.* versions, so if you've been keeping up to date, upgrading to PHP 8 won't have much impact.
Summary
The success of PHP 8 is the second JAVA, and a large number of developers from other languages will return to the PHP camp! It’s quick and easy after all! Let’s look forward to it together!
[Related recommendations]

Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

AI Hentai Generator
Generate AI Hentai for free.

Hot Article

Hot Tools

SublimeText3 Chinese version
Chinese version, very easy to use

SublimeText3 Mac version
God-level code editing software (SublimeText3)

SecLists
SecLists is the ultimate security tester's companion. It is a collection of various types of lists that are frequently used during security assessments, all in one place. SecLists helps make security testing more efficient and productive by conveniently providing all the lists a security tester might need. List types include usernames, passwords, URLs, fuzzing payloads, sensitive data patterns, web shells, and more. The tester can simply pull this repository onto a new test machine and he will have access to every type of list he needs.

Dreamweaver Mac version
Visual web development tools

PhpStorm Mac version
The latest (2018.2.1) professional PHP integrated development tool