Summary of new features of PHP7.4
PHP7.4 New Features
PHP7.4 has been released. Brought some new features. This allows us to write less code.
1. Add qualified type to attributes
<?php class User { public int $age; public string $name } $user = new User(); $user->age = 10; $user->name = "张三"; //error $user->age = "zhang";//需要传递int
2. Arrow function
This feature basically refers to the syntax of ES6 in Js. This allows us to write less code. If your code has the function fn. May conflict
<?php $factor = 10; $nums = array_map(fn($n)=>$n * $factor,[1,2,3]);//[10,20,30] //之前的写法 $nums = array_map(function($num)use($factor){ return $num * $factor; },[1,2,3])
3. Limited return type covariance and parameter type contravariance
Full covariance/contravariance support is only provided when using autoloading. Within a single file, only non-cyclic type references can be used, since all classes must be available before being referenced.
<?php class A {} class B extends A {} class Producer { public function method(): A {} } class ChildProducer extends Producer { public function method(): B {} } ?>
4. Array unpacking
Use the spread operator... to unpack the array. This feature should be absorbed from js. See example
<?php
$parts = ['apple', 'pear'];
$fruits = ['banana', 'orange', ...$parts, 'watermelon'];//['banana', 'orange', 'apple', 'pear', 'watermelon'];
//老的写法
$fruits = array_merge(['banana', 'orange'],$parts,['watermelon']);
5. Null coalescing operator assignment
<?php $array['key'] ??= computeDefault(); // 老的写法 if (!isset($array['key'])) { $array['key'] = computeDefault(); } ?>
6. Numeric literal delimiter
Number literals can contain underscores between numbers.
<?php 6.674_083e-11; // float 299_792_458; // decimal 0xCAFE_F00D; // hexadecimal 0b0101_1111; // binary ?>
7. Allow exceptions to be thrown from __toString()
Now allows exceptions to be thrown from __toString(). In the past this would result in a fatal error. Existing recoverable in string conversion Fatal errors have been converted to Error exceptions.
8. Filter
Added FILTER_VALIDATE_FLOAT
<?php filter_var(1.00,FILTER_VALIDATE_FLOAT); filter.filters.validate
9. strip_tags supports arrays
<?php strip_tags($str,['p','a','div']); //老的写法 strip_tags($str,"<p><a><div>"); 废弃的特性 1. 没有显式括号的嵌套三元运算符 <?php 1 ? 2 : 3 ? 4 : 5; // deprecated (1 ? 2 : 3) ? 4 : 5; // ok 1 ? 2 : (3 ? 4 : 5); // ok ?>
During the interview, Finally, I don’t have to worry about asking you what the result is. In fact, in production, everyone will not write like this.
2. Curly braces to access array index To be honest, this is the first time I have seen it and it has been abandoned. , indicating that no one will use it this way. 3. real and is_real real numbers 4. The parent keyword is used in a class without a parent class If parent is used in a class without a parent class, compilation will occur. mistake. 5. money_format function money_format is deprecated and replaced by numberFormater 6. Removed extensions The above is the detailed content of Summary of new features of PHP7.4. For more information, please follow other related articles on the PHP Chinese website!<?php
$arr = ["a"=>"111"];
$index = "a";
$arr{$index}//废弃
$arr[$index];
<?php
$num = "";
$a = (real) $num;//废弃
$a = (float) $num;
<?php
class Test{
public function index()
{
return parent::index();//编译错误
}
}
1.Firebird/Interbase
2.Recode
3.WDDX

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



How to install the mongo extension in php7.0: 1. Create the mongodb user group and user; 2. Download the mongodb source code package and place the source code package in the "/usr/local/src/" directory; 3. Enter "src/" directory; 4. Unzip the source code package; 5. Create the mongodb file directory; 6. Copy the files to the "mongodb/" directory; 7. Create the mongodb configuration file and modify the configuration.

To resolve the plugin not showing installed issue in PHP 7.0: Check the plugin configuration and enable the plugin. Restart PHP to apply configuration changes. Check the plugin file permissions to make sure they are correct. Install missing dependencies to ensure the plugin functions properly. If all other steps fail, rebuild PHP. Other possible causes include incompatible plugin versions, loading the wrong version, or PHP configuration issues.

In php5, we can use the fsockopen() function to detect the TCP port. This function can be used to open a network connection and perform some network communication. But in php7, the fsockopen() function may encounter some problems, such as being unable to open the port, unable to connect to the server, etc. In order to solve this problem, we can use the socket_create() function and socket_connect() function to detect the TCP port.

Common solutions for PHP server environments include ensuring that the correct PHP version is installed and that relevant files have been copied to the module directory. Disable SELinux temporarily or permanently. Check and configure PHP.ini to ensure that necessary extensions have been added and set up correctly. Start or restart the PHP-FPM service. Check the DNS settings for resolution issues.

How to install and deploy php7.0: 1. Go to the PHP official website to download the installation version corresponding to the local system; 2. Extract the downloaded zip file to the specified directory; 3. Open the command line window and go to the "E:\php7" directory Just run the "php -v" command.

How to automatically set the permissions of unixsocket after the system restarts. Every time the system restarts, we need to execute the following command to modify the permissions of unixsocket: sudo...

Causes and solutions for errors when using PECL to install extensions in Docker environment When using Docker environment, we often encounter some headaches...

Compared with PHP7, PHP8 has some advantages and improvements in terms of performance, new features and syntax improvements, type system, error handling and extensions. However, choosing which version to use depends on your specific needs and project circumstances. Detailed introduction: 1. Performance improvement, PHP8 introduces the Just-in-Time (JIT) compiler, which can improve the execution speed of the code; 2. New features and syntax improvements, PHP8 supports the declaration of named parameters and optional parameters, making functions Calling is more flexible; anonymous classes, type declarations of properties, etc. are introduced.
