你不得不知道的php7小知识
PHP7正式发布到现在已经很长时间了,刚出道就号称比旧版本快了几倍,各种开源框架或系统运行在PHP7上速度效率提高了几倍,反正不管是媒体还是开发者都在煽风点火,不,应该是赞不绝口。
一般手机系统升级我是跑最后的,因为不愿意踩坑,毕竟iOS和Android这种系统都会出现bug,何况世界上被人黑的最多的语言。
今日时机已到,猿姐开始给你们科普科普有关PHP7你必须要了解的几件事。
1. 新的Zend引擎
Zend引擎从1999年的php4开始就开始驱动着php,Zend(不要与zend framework混淆)是一个用C语言开发的开源引擎.现在的php 5.X的版本用的Zend II版本,它对php来说有着重要的性能提升.Php7将采用叫PHPNG的新引擎来驱动
2. 更方便的错误处理
捕获和处理错误对于php程序猿来说,从来不是一件简单的活.新的引擎将允许你用异常来代替错误.就像在php5.X的版本中一样,在php7中如果异常没被捕获,
php将返回错误.
\EngineException 对象没有继承\Exception,这保证了代码的向后兼容和在错误处理时的两种不同类型的异常处理:传统的和新的引擎的异常处理.
为了方便我们捕获两种异常,php7引入了新的如下的异常处理方式:
3. 64位windows操作系统的支持
php是LAMP的成员,也就意味着它原生的环境是Linux-但它也能在windows操作系统上运行.5.X版本还不支持64位整形或者大文件的支持,因此X64 系列的架构的windows还是试验性的.
php7将会支持支持64位的windows,也意味着64位整形和大文件将被支持
4. 标量类型声明
标量类型声明 有两种模式: 强制 (默认) 和 严格模式。 现在可以使用下列类型参数(无论用强制模式还是严格模式): 字符串(string), 整数 (int), 浮点数 (float), 以及布尔值 (bool)。它们扩充了PHP5中引入的其他类型:类名,接口,数组和 回调类型。
以上例程会输出:
要使用严格模式,一个 declare 声明指令必须放在文件的顶部。这意味着严格声明标量是基于文件可配的。 这个指令不仅影响参数的类型声明,也影响到函数的返回值声明(参见 返回值类型声明, 内置的PHP函数以及扩展中加载的PHP函数)
5. 密码哈希中的Argon2
Argon2 是荣获 2015 年密码哈希算法比赛中的冠军的强大哈希算法, PHP 7.2 将其作为安全 Bcrypt 算法的替代品。
新版的 PHP 中引入了 PASSWORD_ARGON2I 常量,现在可以在 password_* 系列函数中使用:
password_hash('password', PASSWORD_ARGON2I);
与只使用一个 cost 因子的 Bcrypt 不同, Argon2 使用三个 cost 因子 区分如下:
定义哈希计算期间应该消耗的KiB数量的内存开销(默认值为1 << 10或1024 KiB或1 MiB)
定义哈希算法迭代次数的时间开销(默认值为2)
并行因子,用于设置哈希计算时使用的并行线程数(缺省值为2)
以下三个新常量定义了默认的 cost 因子:
PASSWORD_ARGON2_DEFAULT_MEMORY_COST
PASSWORD_ARGON2_DEFAULT_TIME_COST
PASSWORD_ARGON2_DEFAULT_THREADS
但是为什么猿姐这次要来讨论PHP7呢?
因为猿姐之前收到一个巨大的消息
还有两个月停止PHP 5.6 安全支持!
根据 PHP 官方网站列出的支持版本及时刻表(如下),PHP 5.6 安全支持将于2018年12月31日终止。即两个半月后,使用 PHP 5.6 版本的网站将不再收到安全漏洞或错误更新。
Paragon Initiative Enterprise的首席开发官Scott Arciszewski 在接受采访时表示,
对于PHP生态系统来说,这是一个巨大的问题。许多人认为他们可以'侥幸'在2019年继续运行PHP 5,而这其实是一种安全工作上的刻意疏忽。
事实上,PHP 5.6 的主要及安全更新期早就结束,但因使用的网站较多,因此,PHP 维护组织曾一度分别延长其支持时间。有些人将这种情况描述为 PHP 风险。较新的 PHP 7.0 将不再在2018年12月1日的 EOL(生命周期结束)提供安全支持。即便是版本 PHP 7.1 也将于2018年12月1日终止。一年后结束安全支持。
目前三大网站内容管理系统(CMS)项目中,只有 Drupal 宣布从2019年3月6日起,Drupal 支持网页最低要求 PHP 7,建议使用 7.1 版。Joomla 推荐使用 5.6 或更高版本,支持下限为 5.3.10。Wordpress 建议使用 PHP 7.2 或更高版本,最低支持 5.2.4。
根据 ZDNet 报道,WordFence 安全组件研发主管 Sean Murphy 表示,PHP 漏洞利用的主要目标不是在 PHP 本身,而是在 PHP 库和 CMS 系统中,但其他安全专家认为,等截止日期到来,黑客就会积极利用 PHP 5.6 中的漏洞的。
PHP漏洞攻击者主要目标不是在PHP本身,而是在PHP函式库及CMS系统,在两个月大限到来,黑客们会更积极在PHP 5.6以前版本中找出漏洞。自家网站一不小心被挂马,网站则沦为色情与赌博站,形象大跌!
推荐学习:php视频教程
以上是你不得不知道的php7小知识的详细内容。更多信息请关注PHP中文网其他相关文章!

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

热门话题

php7.0安装mongo扩展的方法:1、创建mongodb用户组和用户;2、下载mongodb源码包,并将源码包放到“/usr/local/src/”目录下;3、进入“src/”目录;4、解压源码包;5、创建mongodb文件目录;6、将文件复制到“mongodb/”目录;7、创建mongodb配置文件并修改配置即可。

在php5中,我们可以使用fsockopen()函数来检测TCP端口。这个函数可以用来打开一个网络连接和进行一些网络通信。但是在php7中,fsockopen()函数可能会遇到一些问题,例如无法打开端口、无法连接到服务器等。为了解决这个问题,我们可以使用socket_create()函数和socket_connect()函数来检测TCP端口。

解决 PHP 7.0 中插件未显示已安装问题的方法:检查插件配置并启用插件。重新启动 PHP 以应用配置更改。检查插件文件权限,确保其正确。安装丢失的依赖项,以确保插件正常运行。如果其他步骤均失败,则重建 PHP。其他可能原因包括插件版本不兼容、加载错误版本或 PHP 配置问题。

PHP服务器环境常见的解决方法包括:确保已安装正确的PHP版本和已复制相关文件到模块目录。临时或永久禁用SELinux。检查并配置PHP.ini,确保已添加必要的扩展和进行正确设置。启动或重启PHP-FPM服务。检查DNS设置是否存在解析问题。

php7.0安装部署的方法:1、到PHP官网下载与本机系统对应的安装版本;2、将下载的zip文件解压到指定目录;3、打开命令行窗口,在“E:\php7”目录下运行“php -v”命令即可。

如何在系统重启后自动设置unixsocket的权限每次系统重启后,我们都需要执行以下命令来修改unixsocket的权限:sudo...

在Docker环境中使用PECL安装扩展时报错的原因及解决方法在使用Docker环境时,我们常常会遇到一些令人头疼的问�...

PHP8相较于PHP7在性能、新特性和语法改进、类型系统、错误处理和扩展等方面都有一些优势和改进。然而,选择使用哪个版本要根据具体的需求和项目情况来决定。详细介绍:1、性能提升,PHP8引入了Just-in-Time(JIT)编译器,可以提高代码的执行速度;2、新特性和语法改进,PHP8支持命名参数和可选参数的声明,使得函数调用更加灵活;引入了匿名类、属性的类型声明等等。
