PHP 7.1.0 Alpha 1 发布,增加新特性 - 开源中国社区
PHP 7.1.0 Alpha 1 发布,增加新特性
oschina 2016年06月10日
本站文章除注明转载外,均为本站原创或编译。欢迎任何形式的转载,但请务必注明出处,尊重他人劳动共创开源社区。
转载请注明:文章转载自 开源中国社区 [http://www.oschina.net]
本文标题:PHP 7.1.0 Alpha 1 发布,增加新特性
分享
评论(34)
最新评论
0
吹那么多逼,又不能写服务器。python,nodejs 能写 openstack 这种级别的网络系统,php 也就画个页面给小白过过瘾 51
0
@中国首席鉴黄师 PHP的strict_types真心跟PHP7性能以及未来的性能无关,这个功能的贡献者也根本不是负责性能方面开发的鸟哥和Dmitry,并且这两位负责提升PHP性能的核心开发者都对这个特性透了反对票,这就是事实.
如果你真的关心引入强类型提升性能,你应该看看Facebook为HHVM添加的Hack语言支持,这个东西才是HHVM团队说为了性能而搞得的东西,但PHP7的strict_types则绝对不是为了性能,也根本PHP7和未来提升性能的手段.
0

引用来自“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。
0
性能瓶颈很少出现在语言上,大多在数据库上吧,我的感觉如此
0
@中国首席鉴黄师 你关心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将支持的一个特性,不会强制开启.
0

引用来自“eechen”的评论

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

引用来自“eechen”的评论

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

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

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。
0
@中国首席鉴黄师 除了反对票,更有说服力的论据请看鸟哥微博,鸟哥甚至发微博来吐槽这个strict_types特性,自己去看吧.
0

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

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和鸟哥就不会投反对票了)』

请问站得住脚吗?我乐于接受更有说服力的依据。
0

引用来自“回去干活”的评论

新手已经很难掌握这么多语法特性.PHP的门槛不再低

引用来自“eechen”的评论

从很多新手还在使用mysql这套函数而不是mysqli和pdo来操作MySQL就知道新手才不会用那些语法糖特性,倒是有些自以为很牛逼的PHP框架开发者(装逼犯)倒是会犯蠢.
所以这样的新手永远是新手,比如你
0
PHP好吗?做web用PHP还是java好?
0
哎,namespace都还没开始用~,真心是跟不上时代了
0

引用来自“回去干活”的评论

新手已经很难掌握这么多语法特性.PHP的门槛不再低
从很多新手还在使用mysql这套函数而不是mysqli和pdo来操作MySQL就知道新手才不会用那些语法糖特性,倒是有些自以为很牛逼的PHP框架开发者(装逼犯)倒是会犯蠢.
0

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

PHP 由于变量类型在运行时才确定的动态特性,导致其很难运用各式的优化手段。而 return type、nullable 都是为了方便 JIT 可以更好的工作。所以到最后你会发现 PHP 就是 YAActionScript - Yet another ActionScript
强类型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语法检查并不会提示类型错误.
0
求PHP大牛前来点评
0

引用来自“灬醉清风”的评论

都别扯了,现在的eechen已转向JAVA。

引用来自“eechen”的评论

Java Web 从入门到 PHP 7
性能大增的PHP7是保证PHP在Web上继续吊打Java一个世纪的里程碑版本.同时PHP7的发布也是Java的"里程悲".
很好,我放心了
0
搞nullable不如搞Option和match
0
新手已经很难掌握这么多语法特性.PHP的门槛不再低
顶部