php4 class,PHP 7.4 新特性

原标题:PHP 7.4 新特性

PHP 7.4 计划在2019年11月21日发布,它主要新增了以下几个特性:

short closure

Improved type variance

serialization

__toString

php

短闭包函数

短闭包函数可以减少冗余代码:

array_map(function (User $user) {

return $user->id;

}, $users)array_map(fn(User $user) => $user->id, $users)

需要注意几点:

use

$this

PHP 预加载可以极大的提高性能

优点:在 PHP 7.4 以前,如果你使用了框架来开发,每次请求文件就必须加载和重新编译。预加载在框架启动时在内存中加载文件,而且在后续请求中永久有效。

缺点:性能的提升会在其他方面花费很大的代价,每次预加载的文件发生改变时,框架需要重新启动。

属性类型限定class A

{

public string $name;

public Foo $foo;

}

不得不说, PHP 越来越接近 Java 等强类型语言

Improved type variance

协变返回类型:

class ParentType {}

class ChildType extends ParentType {}

class A

{

public function covariantReturnTypes: ParentType

{ /* … */ }

}

class B extends A

{

public function covariantReturnTypes: ChildType

{ /* … */ }

}

依赖(是不是很熟悉):

class ParentType {}

class ChildType extends ParentType {}

class A

{

public function covariantReturnTypes: ParentType

{ /* … */ }

}

class B extends A

{

public function covariantReturnTypes: ChildType

{ /* … */ }

}简写三元运算符

在目前 > PHP 7 以后的写法:

$data['date'] = $data['date'] ?? new DateTime;

在 PHP 7.4 你可以这样写:

$data['date'] ??= new DateTime;数组展开运算

合并数组到另一个数组中,返回一维数组

$arrayA = [1, 2, 3];

$arrayB = [4, 5];

$result = [0, ...$arrayA, ...$arrayB, 6 ,7];

// [0, 1, 2, 3, 4, 5, 6, 7]

注意:只对数字索引有效

新增类的魔术方法

RFC 添加了两个新的魔术方法 __serialize 和 __unserialize

允许使用下划线更直观的分隔数值

$unformattedNumber = 107925284.88;

$formattedNumber = 107_925_284.88;运算优先顺序

PHP 7.4 之前,如果你这样写:

echo "sum: " . $a + $b;

PHP 会解析为:

echo ("sum: " . $a) + $b;

PHP 8 将会解析为:

echo "sum :" . ($a + $b);__toString 中抛出异常

PHP 7.4 将会新增 ReflectionReference 类

移除 php 短标签

将会在 PHP 8 中移除, = 会继续保留

弃用左关联运算符

PHP 遗留了一些奇怪的怪癖,比如

1 ? 2 : 3 ? 4 : 5; // 将会在 PHP 7.4 中废弃,在 PHP 8中会抛出编译错误

(1 ? 2 : 3) ? 4 : 5; // 正确

弃用在没有父类的情况下调用 parent::

调用 var_dump 打印 DateTime 和 DateTimeImmutable shi'实例,将不再保留对象上的可访问属性

openssl_random_pseudo_bytes 会在调用错误时抛出异常

序列化 PDO 和 PDOStatement 实例将会生成一个 Exception 而不是 PDOException 异常

调用 get_object_vars 打印 ArrayObject 实例将会返回 ArrayObject 自己的属性,而不是被包裹的数组或对象的值,

数组强制转换不受影响

原文:https://segmentfault.com/a/1190000019554530返回搜狐,查看更多

责任编辑:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在CentOS 7上安装PHP 7.4的步骤如下: 首先,你需要启用Remi存储库。可以使用以下命令启用Remi存储库: sudo yum install epel-release sudo yum install http://rpms.remirepo.net/enterprise/remi-release-7.rpm sudo yum install yum-utils 然后,你可以使用以下命令安装PHP 7.4及其相关扩展: sudo yum-config-manager --enable remi-php74 sudo yum update sudo yum install php php-cli php-fpm php-mysqlnd php-zip php-devel php-gd php-mcrypt php-mbstring php-curl php-xml php-pear php-bcmath php-json 安装完成后,你可以使用以下命令验证PHP版本: php -v 要重启PHP-FPM服务,可以使用以下命令: sudo systemctl restart php-fpm 如果你使用的是Nginx而不是Apache,请确保将php-fpm.conf文件中的用户和组更改为nginx: sudo vi /etc/opt/remi/php74/php-fpm.d/www.conf user = nginx group = nginx 如果需要更改PHP配置文件,请使用以下命令: sudo vi /etc/opt/remi/php74/php.ini 要卸载PHP 7.4,你可以使用以下命令: sudo yum remove php74-php* 以上是在CentOS 7上安装PHP 7.4的简要步骤。你可以根据你的需求进一步调整和配置。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [Centos7(Liunx)安装PHP7.4版本](https://blog.csdn.net/JackMaF/article/details/119369875)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] - *3* [CentOS7 安装php7.4](https://blog.csdn.net/weixin_45120915/article/details/110518577)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值