Analyzing PHP 5.5 New Features_PHP Tutorial
PHP5.5 was released not long ago. What are the new features in it? The official document is here:
http://www.php.net/manual/zh/migration55.new-features.php
1 Generator yield keyword
The Chinese documentation of yield is here: http://php.net/manual/zh/language.generators.overview.php
Looking at the documentation, you can know that one of the functions of yield is to effectively reduce the memory overhead of iteration . For example, this xrange example on the official website:
function xrange($ start, $limit, $step = 1) {
for ($i = $start; $i <= $limit; $i += $step) {
yield $i;
}
}
echo 'Single digit odd numbers: ';
/*
* Note that an array is never created or returned,
* which saves memory.
*/
foreach (xrange(1, 9, 2) as $number) {
echo "$number ";
}
echo "n";
?> ;
xrange here is an iteration, and its function is the same as range. If the range function is used, the internal implementation of the function will store the intermediate process of each iteration, that is, each intermediate variable has If there is a memory space, first of all, the memory space used by the program will be large, and allocating memory and recycling memory will lengthen the running time of the program. But if you use the xrange function implemented by yield, all intermediate variables in it only use one memory $i, so the time and space saved will become smaller.
So why does yield have such an effect? Thinking of yield in Lua, here is the concept of coroutine. In the Lua language, when the program reaches yield, a coroutine is used to record the context environment, and then the program operation rights are returned to the main function. When the main function calls resume, the coroutine will be re-awakened and the yield record will be read. context. This forms a multi-coroutine operation at the programming language level. The same is true for yield here in PHP 5.5. When the program runs to yield, the current program evokes the coroutine to record the context, and then the main function continues to operate. However, keywords such as resume are not used in PHP, but "using When the coroutine is called up. For example, the foreach iterator in the above example can evoke yield. So the above example can be understood.
In fact, according to the reference to yield, many internal functions, especially those related to iteration, should be able to be optimized. Maybe there will be yield and non-yield versions of functions that implement the same function in the future.
2 finally keyword
This is the same as finally in java, the classic try...catch...final three-stage exception handling.
3 foreach supports list()
For "array of arrays" iteration, you need to use two foreach before, now you only need to use foreach + list , but the number of each array in the array of this array needs to be the same. You can understand it at a glance by looking at the examples in the documentation.
$array = [
[1, 2 ],
[3, 4],
];
foreach ($array as list($a, $b)) {
echo "A: $a; B: $ bn";
}
?>
4 empty() now supports custom functions
before empty() The parameters in cannot be functions. Now it works
function foo(){
return false;
}
if(empty(foo())){
echo 11;
} else {
echo 12;
}
5 Non-variable arrays and strings can also support subscript acquisition
echo array(1, 2, 3)[0];
echo [1, 2, 3][0];
echo "foobar"[2];
?>
6 The class name can be obtained through ::class
namespace NameSpace;
class ClassName { }
echo ClassName::class;
echo "n";
?>
7 Added opcache extension
Using opcache will improve the performance of PHP. You can statically compile (--enable-opcache) or dynamically expand ( zend_extension) to add this optimization item.

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

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

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

Hot Topics



PHP 8.4 brings several new features, security improvements, and performance improvements with healthy amounts of feature deprecations and removals. This guide explains how to install PHP 8.4 or upgrade to PHP 8.4 on Ubuntu, Debian, or their derivati

If you are an experienced PHP developer, you might have the feeling that you’ve been there and done that already.You have developed a significant number of applications, debugged millions of lines of code, and tweaked a bunch of scripts to achieve op

Visual Studio Code, also known as VS Code, is a free source code editor — or integrated development environment (IDE) — available for all major operating systems. With a large collection of extensions for many programming languages, VS Code can be c

JWT is an open standard based on JSON, used to securely transmit information between parties, mainly for identity authentication and information exchange. 1. JWT consists of three parts: Header, Payload and Signature. 2. The working principle of JWT includes three steps: generating JWT, verifying JWT and parsing Payload. 3. When using JWT for authentication in PHP, JWT can be generated and verified, and user role and permission information can be included in advanced usage. 4. Common errors include signature verification failure, token expiration, and payload oversized. Debugging skills include using debugging tools and logging. 5. Performance optimization and best practices include using appropriate signature algorithms, setting validity periods reasonably,

This tutorial demonstrates how to efficiently process XML documents using PHP. XML (eXtensible Markup Language) is a versatile text-based markup language designed for both human readability and machine parsing. It's commonly used for data storage an

A string is a sequence of characters, including letters, numbers, and symbols. This tutorial will learn how to calculate the number of vowels in a given string in PHP using different methods. The vowels in English are a, e, i, o, u, and they can be uppercase or lowercase. What is a vowel? Vowels are alphabetic characters that represent a specific pronunciation. There are five vowels in English, including uppercase and lowercase: a, e, i, o, u Example 1 Input: String = "Tutorialspoint" Output: 6 explain The vowels in the string "Tutorialspoint" are u, o, i, a, o, i. There are 6 yuan in total

Static binding (static::) implements late static binding (LSB) in PHP, allowing calling classes to be referenced in static contexts rather than defining classes. 1) The parsing process is performed at runtime, 2) Look up the call class in the inheritance relationship, 3) It may bring performance overhead.

What are the magic methods of PHP? PHP's magic methods include: 1.\_\_construct, used to initialize objects; 2.\_\_destruct, used to clean up resources; 3.\_\_call, handle non-existent method calls; 4.\_\_get, implement dynamic attribute access; 5.\_\_set, implement dynamic attribute settings. These methods are automatically called in certain situations, improving code flexibility and efficiency.
