ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

PHP8.0的新特征记录

2022-05-19 16:34:06  阅读:185  来源: 互联网

标签:8.0 记录 特征 numX PHP8.0 int php8 World public


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

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有