Php8.0带来了很多性能提升有新特性,下面我通过举例给大家介绍php8的部分新特性:
1、联合类型
一个变量可以定义多种数据类型,例如:以前要写一个函数计算两个数值相加,要分别定义整数类型和浮点类型,现在只要一个函数就搞定了。
以前版本:
functionsumNum(int$numX,int$numY)
{
return$numX+$numY;
}
functionsumNum(float$numX,float$numY)
{
return$numX+$numY;
}
php8,可以写成这样子:
functionsumNum(int
float$numX,int
float$numY)
{
return$numX+$numY;
}
2、命名参数
以前的版本,函数传参数必须按函数定义时的参数顺序传参数,php8后,可以打乱参数顺序,但调用函数时要加入参数名,例如:
$worldPos=strops(“HelloWorld!”,”World”);
到php8,可以写成这样子:
$worldPos=strops(haystack:“HelloWorld!”,needle:”World”);
或者
$worldPos=strops(needle:”World”,haystack:“HelloWorld!”);
3、空运算符
以前要读取一个对象的属性,要先用if语句判断对象是不是null,语句比较繁琐,例如要取一个用户购物车里的产品数量:
$itemCount=null;
if($user!==null){
$cart=$user-getCart();
if($cart!==null){
$itemCount=$cart-itemCount;
}
}
到php8可以这样写:$itemCount=$user?-getCart()?-itemCount;
4、构造函数属性提升
对于类的构造函数,以前类的属性要先定义,才能从构造函数传值给类属性,比较繁琐,php8以后可以直接在构造函数里定义类属性。
以前版本
classPerson{
publicstring$name;
publicint$gender;
publicfunction__construct(string$name,int$gender){
$this-name=$name;
$this-gender=$gender;
}
}
php8可以写成这样子:
classPerson{
publicfunction__construct(publicstring$name,publicint$gender){
}
}
今天先分享这些内容,以后有新的内容继续分享。