编程语言
首页 > 编程语言> > PHP8.0的新特征记录

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