PHP7.0新特性-学习笔记1
相关推荐:
1.PHP7 NULL 合并运算符
2.PHP7 太空船运算符(组合比较符<=>)
3.PHP7 常量数组
4.PHP7 匿名类
更多:PHP7新特性教程
php7这个版本最大的特点就是:性能优化。
在过去php的版本中,PHP给人留下比较深刻印象就是:开发效率快,但语言本身性能较差。但是对于普通PHP的网站来说,网站一般属于IO密集型,即输入和输出比较频繁,所以一般瓶颈在MySQL上,体现不出来PHP的性能劣势,然而在密集计算方面比C、C++、Java差几十倍甚至上白倍。同时,如果在PHP使用一些框架,例如Symfony等,程序的性能也会明显的下降。
PHP在WEB开发仍然很流行,像Facebook,sina微博等都在使用PHP。对于这些高流量,高并发的大型网站来说,开发语言的性能对他们来说就很重要了。像Facebook,它们底下服务器台数达到数万台,如果PHP性能能提高一部分,那么对于服务器资源的开销无疑会减少很多。Facebook也因此开发了HHVM:重写的PHP引擎。在使用了HHVM后,Facebook项目性能提高了惊人的70%。还有一个例子,像很早以前的QQ农场,最早是使用PHP开发的,后来因为性能问题,使用了C语言进行性能重构,重构完成后性能提高了100%。所以,如果能在不更换语言的前提下而快速的提高项目的性能,对于项目开发者来说就变得很重要,于是才有了PHP7的出现。
在PHP7 alpha1版本,在Wordpress项目中的测试结果已经超过了HHVM。PHP7重写了ZendVM,性能比PHP5.6提升了300%。 在性能分析上,php5.6是112qps(Query Per Second,每秒查询率),而PHP7达到了311pqs。
HP7主要增加了两个新特性:第一个是变量类型。
在以前的php版本中,函数参数与及函数都是没有任何类型的。在PHP7版本函数的参数和返回值增加了类型限定。实际上此特性是为了PHP7.1版本的JIT特性做准备的,增加类型后PHP JIT可以准确判断变量类型,生成最佳的机器指令。这样就不用像之前那样不断去判断变量的类型,然后进行取值,没办法快速生成机器码,如果增加了准确的类型判断后,就可以使用JIT生成准确的机器码,省去了大量的判断,因此性能得到了大幅度提升。
function test(int $a,string $b,array $c) : int { //code }
第二个特性是错误异常 在过去旧版中,PHP程序出错后Zend引擎会抛出一个致命的错误fatal error并终止程序的运行。 PHP7中可以使用try/catch来捕获错误。
try { non_exists_func(); } catch(EngineException $e) { echo "Exception:{$e->getMessage()}\n"; }
在上面函数中,如果调用了一个不存在的函数,程序不会因为致命错误而终止,而是去调用catch里面的错误处理机制。
欢迎转载,转载请注明:http://coderschool.cn/283.html
2 Comments
额,虽然看不太懂,但是不妨碍我先收藏!终有一天看得懂的
我也是刚开始学。