php7 宣称速度比php5.6快两倍,宣称要打破一切旧规则
2015年,php 7.0发布
2016年,php 7.1发布
2017年,php 7.2发布
2018年,php 7.3发布
2019年,php 7.4即将发布
并且php8已经在讨论中,并已确定支持JIT
看的出来php这几年很活跃,php确实做出了很大的改变,性能得到了很大提升,同时也在向弱类型和解释型动刀,弱
类型和解释型都是php之前的优点,好用,简单,快速开发,然而过去的有点不一定适合未来,php的团队也注意到了这一
点,不断进行类型规范和运算符规范的调整,比如支持类型声明,支持运算符的类型异常抛出,以及数组和foreach做出的
改变。这所有的一切都是对php的一种修复,过去php太粗犷了,隐式类型自动转换,看着很厉害,用着很舒服,实际上隐
藏了大量的未知BUG,可能看起来逻辑毫无问题的代码,莫名其妙的不通过,这就是弱类型和类型自动转换带来的后果。
这也是为什么php开发速度快,号称世界上最好的语言,却只能蜷缩在web开发这一角,这是php的病,得治。随着php7.0
~ 7.4, 这些问题正在逐渐解决,然而路漫漫其修远兮!
- php 7.4 性特性
1、php7.4 支持了预加载。现在传统的 PHP 框架或者项目,都是有一次请求就加载和重新编译一次文件的。预加载的实现
使得我们可以直接将 PHP 文件加载到内存中,并一次来永驻内存来应对后续的请求。(是不是看着这段话很熟悉)
不过预加载也会带来一点机器内存要求和一些损耗,你还需要注意的是,每次在更新完 PHP 文件之后,你需要重启服务才可以使得新的 PHP 文件生效。
2、属性类型限定
在定义类属性的时候,你可以限定属性的类型 string boolean 或者是一个类的实例:
class GeiXue
{
public string $name;
public Foo $foo;
}
3、类型限定的改进
4、外部函数接口
外部函数接口(Foreign Function Interface)总的来说就是允许你调用 C 代码,也就是说,最好的应用场景可能就是:你以后写 PHP 的扩展就可直接用 PHP 来写了!
不过需要注意的是:这目前来说还是比较复杂的,你最好还是有点 C 语言的基础。
5、null合并符的改进
6、PEAR不再默认开启,使用compose替换
7、自定义对象序列化
在 PHP 7.4 的时候,增加了 __serialize 和 __unserialize 这两个魔术方法,你可以用来自定义对象的序列化。
- php8
继php对于变量类型的加强之后,又支持了JIT, 引入JIT后,会扩大PHP的使用范围,使得PHP成为一种通用型的语言,而不仅仅是个Web开发语言,尽管目前咋Web开发上面PHP做的确实是非常成功。
对富CPU密集型计算方面的改善,可以在机器学习,3D渲染,2D(图形)渲染和数据分析方面提高适用范围。
从此php将不再蜷缩在web开发的一角,将有机会和java、python展开全面竞争。
其它的改进方案都还在讨论中,希望php8继续打破过去,浴火重生,成为真正的最好的语言!