PHP7.2有哪些新特性?

我们知道php被称为“世界最好的语言“,可见人们对其是又爱又恨。我是其中一位开发者,但我对php是绝对地喜爱。我对php 了如指掌。自从php7.2发布以来,我更加喜欢这门语言。让我们看最新版本给我们带来哪些精彩。

最重要的安全

7.2版本提供了一些非常必要的安全性改进。

停止使用sha1() or md5(),请使用:

password_hash('password', PASSWORD_ARGON2I)

使用argon2i算法还支持自定义模式:

$options = [

'memory_cost' => PASSWORD_ARGON2_DEFAULT_MEMORY_COST,

'time_cost' => PASSWORD_ARGON2_DEFAULT_TIME_COST,

'threads' => PASSWORD_ARGON2_DEFAULT_THREADS,

];

password_hash('password', PASSWORD_ARGON2I, $options);

argon2算法解决了我个人的现有算法的缺点,在他们设计的最高内存填充率。

libsodium库现在正式作为PHP核心的扩展。我一直在等待这样的一段时间了。

Mcrypt被取消

mcrypt密码库扩展已正式取消。PHP的开发小组说,mcrypt大大抑制PHP语言的发展,越来越像“老软件。”

对SSL / TLS(安全套接字层/传输层安全)常数进行了改进。

改进的语言特性

还有其他的更新,用来帮助解决一些开发者关于PHP语言的改进和建议。我们一起来看看。

PHP7.2在调用count()函数时,它接收一个参数为一个标量函数,如果参数为空,或者一个对象,将返回未实现接口的警告信息。

关于对象类型声明修复的情况,以前开发者不能声明一个函数需要传递一个对象作为参数或声明一个函数应该返回一个对象。PHP7.2可以使用object作为一个参数类型和返回类型声明。

hashcontext对象将哈希扩展使用对象,而不是使用资源。

在使用对象/数组模型解决了与Zend引擎数字key转换的问题。

在以前的开发实例中,哈希数组的Key可以包含数字和字符串,而对象哈希表是整数的索引。在这种情况下,导致PHP代码找不到key。

PHP 7.2对此作了修复,数组或对象哈希表的key会自动转换为适当的类型,所以数字字符串属性名对象会成为整数数组中的key,反之亦然,解决了无法访问的性能问题。

作者:前端老白

本文来自企鹅号 - 21CTO媒体

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏从零开始学自动化测试

python测试开发django-4.获取url参数和name的作用

如打开博客园按时间分类标签页【https://www.cnblogs.com/yoyoketang/archive/2018/10.html】,里面是时间参数是...

261
来自专栏C/C++基础

Protocol Buffers C++入门教程

protobuf(Protocol Buffers )是Google的开源项目,是Google的中立于语言、平台,可扩展的用于序列化结构化数据的解决方案。官网见...

2241
来自专栏扎心了老铁

python使用上下文管理器实现sqlite3事务机制

如题,本文记录如何使用python上下文管理器的方式管理sqlite3的句柄创建和释放以及事务机制。 1、python上下文管理(with) python上下文...

38812
来自专栏我的博客

CI基础知识笔记

1.知识点 $config[‘url_suffix’] = ”;//url后缀 $config[‘enable_query_strings’] = FALS...

2673
来自专栏刘望舒

Android网络编程(十一)源码解析Retrofit

前言 最近博客的产出确实很少,因为博主我正在写一本Android进阶书籍,两头很难兼顾,但是每个月也得至少发一篇博客。上一篇我们介绍了Retrofit的使用方...

1907
来自专栏Coding01

看 Laravel 源代码了解 Container

自从上文《看 Laravel 源代码了解 ServiceProvider 的加载》,我们知道 Application (or Container) 充当 Lar...

1485
来自专栏技术墨客

Nginx域名访问处理过程 原

在实际应用中,我们可以将多个域名指向一个IP 地址,或者使用范IP解析功能。当多个域名执行一个 IP 地址时,Nginx 可以根据域名来分配不同的虚拟服务器,如...

833
来自专栏lgp20151222

解决com.fasterxml.jackson.databind.JsonMappingException: No suitable

加序列化(java 的实体类 implement Serializable等)或者处理序列化(改成jsonString就是一种处理方式哦)。

1212
来自专栏前端架构与工程

【译】《Understanding ECMAScript6》- 第八章-Module

目录 模块是什么 使用基础 接口标识符重命名 缺省接口 Re-exporting 非绑定import 总结 JavaScript令人困惑并且易引发错误的特性之一...

1956
来自专栏大内老A

通过重建Hosting系统理解HTTP请求在ASP.NET Core管道中的处理流程[下]:管道是如何构建起来的?

在《中篇》中,我们对管道的构成以及它对请求的处理流程进行了详细介绍,接下来我们需要了解的是这样一个管道是如何被构建起来的。总的来说,管道由一个服务器和一个Htt...

2525

扫码关注云+社区