干货大放送:关于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


另外, PHP有许多内置函数,其中大多数函数都被程序员广泛使用。但也有一些函数隐藏在角落,在本文中猿姐也将向大家介绍几个个鲜为人知,但用处非常大的函数。 没用过的程序猿不妨过来看看。


1.highlight_string() 

当需要在一个网站中展示PHP代码时,highlight_string()函数就变的非常有用了。该函数通过使用PHP语法高亮程序中定义的颜色,输出或返回给定的PHP代码的语法高亮版本。


举例如下


2.levenshtein()

该函数主要返回两个字符串之间的Levenshtein距离。Levenshtein 距离,又称编辑距离,指的是两个字符串之间,由一个转换成另一个所需的最少编辑操作次数。许可的编辑操作包括将一个字符替换成另一个字符,插入一个字符,删除一个字符。该函数对查找用户所提交的错别字非常有用。


举例如下

3. php_strip_whitespace()

该函数可以返回已删除PHP注释以及空白字符的源代码文件,这对实际代码数量和注释数量的对比很有用。


举例如下:

 


猿姐瞎BB

1、P语法吸收了C语言、Java和Perl的特点,易于学习。

2、非计算密集型的代码,在开启缓存的情况,php7性能提升至少1/4以上;

3、php7值得尝试,但是是否能大规模应用到线上环境,需要时间的考验。

广告


牛B程序猿


孤独地写程序时,你需要一些陪伴,一些快乐,一些”干“货。

扫码关注!

Back To Top