Php8.0带来了很多性能提升有新特性,下面我通过举例给大家介绍php8的部分新特性:
1、联合类型
一个变量可以定义多种数据类型,例如:以前要写一个函数计算两个数值相加,要分别定义整数类型和浮点类型,现在只要一个函数就搞定了。
以前版本:
functionsumNum(intnumX,intnumY)
{
returnnumX+numY;
}
functionsumNum(floatnumX,floatnumY)
{
returnnumX+numY;
}
php8,可以写成这样子:
functionsumNum(int
floatnumX,int
floatnumY)
{
returnnumX+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{
publicstringname;
publicintgender;
publicfunction__construct(stringname,intgender){
this-name=name;
this-gender=gender;
}
}
php8可以写成这样子:
classPerson{
publicfunction__construct(publicstringname,publicintgender){
}
}
今天先分享这些内容,以后有新的内容继续分享。