PHP8.0的新特征记录
作者:互联网
1、 联合类型
一个变量可以定义多种数据类型,例如:以前要写一个函数计算两个数值相加,要分别定义整数类型和浮点类型,现在只要一个函数就搞定了。
以前版本:
function sumNum(int $numX, int $numY)
{
return $numX+$numY;}
function sumNum(float $numX, float $numY)
{
return $numX+$numY;
}
php8,可以写成这样子:
function sumNum(int|float $numX, int|float $numY)
{
return $numX+$numY;
}
2、命名参数
以前的版本,函数传参数必须按函数定义时的参数顺序传参数,php8后,可以打乱参数顺序,但调用函数时要加入参数名,例如:
$worldPos = strops(“Hello World!”,”World”);
到php8,可以写成这样子:
$ worldPos = strops(haystack:“Hello World!”,needle:”World”);
或者
$ worldPos = strops(needle:”World”,haystack:“Hello World!”);
3、空运算符
以前要读取一个对象的属性,要先用if语句判断对象是不是null,语句比较繁琐,例如要取一个用户购物车里的产品数量:
$itemCount = null;
if($user !== null){
$cart = $user->getCart();
if($cart !== null){
$itemCount = $cart->itemCount;
}
}
到php8可以这样写:
$itemCount = $user?->getCart()?->itemCount;
4、构造函数属性提升
对于类的构造函数,以前类的属性要先定义,才能从构造函数传值给类属性,比较繁琐,php8以后可以直接在构造函数里定义类属性。
以前版本
class Person{
public string $name;
public int $gender;
public function __construct(string $name, int $gender){
$this->name = $name;
$this->gender = $gender;
}
}
php8可以写成这样子:
class Person{
public function __construct(public string $name, public int $gender){
}
}
5.Match表达式,类似于switch
PHP 7
switch (8.0){
case '8.0':
$result = "Oh no!";
break;
case 8.0:
$result = "This is what I expected";
break;
}
echo $result;
PHP 8
echo match (8.0){
'8.0' => "Oh no!",
8.0 => "This is what I expected",
};
wenku.baidu.com/view/41fad345c9aedd3383c4bb4cf7ec4afe04a1b1f5.html
标签:8.0,记录,特征,numX,PHP8.0,int,php8,World,public 来源: https://www.cnblogs.com/lenle29/p/16289023.html