PHP 7.1.0 Alpha 1 发布,增加新特性

oschina
 oschina
发布于 2016年06月10日
收藏 5

PHP 7.1.0 Alpha 1 发布了。

主要新特性:

详细特性及更新内容列表请访问https://github.com/php/php-src/blob/php-7.1.0alpha1/NEWS

码下载: download page

了解更多:PHP 7.1.0 Alpha 1 Released

本站文章除注明转载外,均为本站原创或编译。欢迎任何形式的转载,但请务必注明出处,尊重他人劳动共创开源社区。
转载请注明:文章转载自 开源中国社区 [http://www.oschina.net]
本文标题:PHP 7.1.0 Alpha 1 发布,增加新特性
加载中

最新评论(34

jQer
jQer
吹那么多逼,又不能写服务器。python,nodejs 能写 openstack 这种级别的网络系统,php 也就画个页面给小白过过瘾 51
eechen
eechen
@中国首席鉴黄师 PHP的strict_types真心跟PHP7性能以及未来的性能无关,这个功能的贡献者也根本不是负责性能方面开发的鸟哥和Dmitry,并且这两位负责提升PHP性能的核心开发者都对这个特性透了反对票,这就是事实.
如果你真的关心引入强类型提升性能,你应该看看Facebook为HHVM添加的Hack语言支持,这个东西才是HHVM团队说为了性能而搞得的东西,但PHP7的strict_types则绝对不是为了性能,也根本PHP7和未来提升性能的手段.
中国首席鉴黄师
中国首席鉴黄师

引用来自“eechen”的评论

@中国首席鉴黄师 你关心PHP的JIT实现?那你就看看对strict_types投了反对票的俄罗斯人Dmitry(上面已经提到)的实现,基于LLVM JIT,bench.php测试有5倍计算性能提升,但对WordPress这些实际PHP Web应用的效果却不明显,所以以性能为最大亮点的PHP7才搁置Zend JIT,转而在内存上攻坚提升性能.
https://github.com/zendtech/php-src/tree/zend-jit/ext/opcache/jit
鸟哥现在也是Zend-JIT的代码贡献者,因为Zend-JIT围绕ZendOpcache来实现,是以后ZendOpcache将支持的一个特性,不会强制开启.
我很佩服你能有时间和精力阅读这些新闻。

『那你就看看对strict_types投了反对票的俄罗斯人Dmitry(上面已经提到)的实现,基于LLVM JIT,bench.php测试有5倍计算性能提升,但对WordPress这些实际PHP Web应用的效果却不明显』

这并不能说明说明问题,我已经说了,语法上的变更(增加类型说明)是为了 JIT 可以更好的工作,而现有的语法很难让 JIT 发挥作用,也就是说没有新语法的支持,现有的 PHP 语法很难支撑 JIT。WordPress 这些采用旧有语法的应用在 JIT 上并不能有多好的性能表现正好印证了我开头说的话 - 类型的动态性导致很多优化手段不可用。https://medium.com/php-hacks/the-future-of-php-jit-compilation-907c03896e53#.t7swrn91q

我并不怀疑鸟哥的能力,但是我想编程语言发展了这么多年,被很多PL专家的工作已经证明了的弱类型语言的硬伤不是一个鸟哥就能解决的。你可以不开启各类早已被证明可行高效的优化,为了保住你弱类型的特色,这也注定了 PHP 就是 scripting language。
狗头666
狗头666
性能瓶颈很少出现在语言上,大多在数据库上吧,我的感觉如此
eechen
eechen
@中国首席鉴黄师 你关心PHP的JIT实现?那你就看看对strict_types投了反对票的俄罗斯人Dmitry(上面已经提到)的实现,基于LLVM JIT,bench.php测试有5倍计算性能提升,但对WordPress这些实际PHP Web应用的效果却不明显,所以以性能为最大亮点的PHP7才搁置Zend JIT,转而在内存上攻坚提升性能.
https://github.com/zendtech/php-src/tree/zend-jit/ext/opcache/jit
鸟哥现在也是Zend-JIT的代码贡献者,因为Zend-JIT围绕ZendOpcache来实现,是以后ZendOpcache将支持的一个特性,不会强制开启.
中国首席鉴黄师
中国首席鉴黄师

引用来自“eechen”的评论

@中国首席鉴黄师 弱类型乃PHP编程优势所在,PHP默认就有一套is_xxx判断类型的函数,根本不需要函数再多此一举限制返回值类型:
http://php.net/manual/zh/ref.var.php
所以它只能是 scripting language,函数的返回值确实是可以用作优化时的参考因素的。如果没有显示的指定返回值,你当然可以使用 is_xxx 判断函数的返回值,但是函数的返回值就可以同时是 Int,String,Object...,现在语法上有了返回值的限定,那么函数在书写的时候,就不可能同时返回不同类型的值,从语法上就确定了一个函数只能返回某个特定类型的值,这样就可以方便后期优化代码的步骤。
eechen
eechen
@中国首席鉴黄师 弱类型乃PHP编程优势所在,PHP默认就有一套is_xxx判断类型的函数,根本不需要函数再多此一举限制返回值类型:
http://php.net/manual/zh/ref.var.php
中国首席鉴黄师
中国首席鉴黄师

引用来自“eechen”的评论

@中国首席鉴黄师 除了反对票,更有说服力的论据请看鸟哥微博,鸟哥甚至发微博来吐槽这个strict_types特性,自己去看吧.
另外我没有太明白你要表达的意思,你的意思是说 strict_types 这些在 PHP 中只是语法层面的特性,并没有对 JIT 起到什么作用的意思吗?我想这并不表示以后不会在 JIT 中利用这些语法特性,否则加入这些特性就毫无意义,不管怎样 PHP 以后的路就是 YAActionScript。
中国首席鉴黄师
中国首席鉴黄师

引用来自“中国首席鉴黄师”的评论

PHP 由于变量类型在运行时才确定的动态特性,导致其很难运用各式的优化手段。而 return type、nullable 都是为了方便 JIT 可以更好的工作。所以到最后你会发现 PHP 就是 YAActionScript - Yet another ActionScript

引用来自“eechen”的评论

强类型strict_types是从PHP7开始才引入的东西,默认不开启,以后也不会默认开启,是一个很有争议性且完全不兼容PHP5的特性.这个强类型跟性能没有任何关系,其中PHP之父Rasmus,Zend公司创始人Andi,PHP7性能方面的核心开发者Dmitry和鸟哥Laruence都投了反对票(跟性能有关系Dmitry和鸟哥就不会投反对票了).
https://wiki.php.net/rfc/scalar_type_hints_v5
经过相当激烈的讨论后,PHP7决定引入强类型(strict types)支持.
strict_types=1无非就是约束了参数和返回值的类型,
类型对不上则返回一个Fatal error: Uncaught TypeError
而且是运行时才能感知,php -l file.php语法检查并不会提示类型错误.

引用来自“中国首席鉴黄师”的评论

我可不可以理解你的论点的依据就是这一句:

『PHP之父Rasmus,Zend公司创始人Andi,PHP7性能方面的核心开发者Dmitry和鸟哥Laruence都投了反对票(跟性能有关系Dmitry和鸟哥就不会投反对票了)』

请问站得住脚吗?我乐于接受更有说服力的依据。
另外我没有太明白你要表达的意思,你的意思是说 strict_types 这些在 PHP 中只是语法层面的特性,并没有对 JIT 起到什么作用的意思吗?我想这并不表示以后不会在 JIT 中利用这些语法特性,否则加入这些特性就毫无意义,不管怎样 PHP 以后的路就是 YAActionScript。
eechen
eechen
@中国首席鉴黄师 除了反对票,更有说服力的论据请看鸟哥微博,鸟哥甚至发微博来吐槽这个strict_types特性,自己去看吧.
返回顶部
顶部