Summary of new and deprecated features in PHP7.4
New features in PHP7.4
PHP7.4 was released on the 28th of last month. 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 separator
Numeric 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
New 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>");
Deprecated features
1. Nested ternary operator without explicit brackets
<?php 1 ? 2 : 3 ? 4 : 5; // deprecated (1 ? 2 : 3) ? 4 : 5; // ok 1 ? 2 : (3 ? 4 : 5); // ok ?>
During the interview, I finally don’t have to worry about asking you what the result is. In fact, in production, everyone will not write like this.
2. Accessing array index using curly braces
<?php $arr = ["a"=>"111"]; $index = "a"; $arr{$index}//废弃 $arr[$index];
To be honest, this is the first time I have seen it. It is abandoned, which means that no one will use it this way.
3. real and is_real real numbers
<?php $num = ""; $a = (real) $num;//废弃 $a = (float) $num;
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.
<?php class Test{ public function index() { return parent::index();//编译错误 } }
5. The money_format function
money_format is deprecated and replaced by numberFormater
6. Removed extensions
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

SublimeText3 Chinese version
Chinese version, very easy to use

VSCode Windows 64-bit Download
A free and powerful IDE editor launched by Microsoft

Safe Exam Browser
Safe Exam Browser is a secure browser environment for taking online exams securely. This software turns any computer into a secure workstation. It controls access to any utility and prevents students from using unauthorized resources.

MinGW - Minimalist GNU for Windows
This project is in the process of being migrated to osdn.net/projects/mingw, you can continue to follow us there. MinGW: A native Windows port of the GNU Compiler Collection (GCC), freely distributable import libraries and header files for building native Windows applications; includes extensions to the MSVC runtime to support C99 functionality. All MinGW software can run on 64-bit Windows platforms.

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