PHP5.3有什么问题?

10

我发现很多托管公司不愿意升级到PHP5.3。他们中的大多数都告诉我,原因是PHP5.3存在许多漏洞,所以他们更喜欢将其保留在版本5.2。

那么v5.3有什么问题呢?他们说的——有很多漏洞——是真的吗?在我的本地服务器上,我没有遇到任何错误!

或者他们只是不愿意升级!?

3个回答

9
  • 据我所知,当第一个PHP 5.3.0版本发布时,字节码缓存还没有为新的ABIs和Zend_core更改做好准备和适应。这个问题现在已经解决了,但是疑虑仍然存在。
  • 其次,实际上很少有用户请求更新,因为不是很多代码依赖于5.3的功能。
  • 存在一些兼容性问题(有一些WP和Drupal的问题,但大部分问题都被夸大了)。

因此,大多数共享主机没有升级现有服务器的动力。


有趣。那个 realpath 东西可能会破坏一些应用程序...但是5.3版本充满了好处,比如命名空间和高级的 DateTime 功能,不升级真是太可惜了。 - Pekka
3
有很多吸引人的东西可以升级。例如http扩展,闭包,日期处理,三元运算符简写,__callStatic方法,甚至是goto语句。但对于一些人来说,命名空间似乎是一种反逻辑(也许对于主机提供商也是如此)。 - mario
goto - 真的吗?(你是的,我刚查了一下!)我不知道一种语言怎么会主动退化。我想这算是一个不升级的理由 :-( - user166390
@pst:它的实际用途有限;事实上,它只是一个标签断点。人们只是对名称感到不满。它旨在像SplFixedArray一样进行微优化。 - mario
遗憾的是,它不仅仅是一个“标记的中断”(这意味着它只能“返回”到先前的“命名结构”(例如for-each或块等)的连接点)。看看这个例子:http://php.net/manual/en/control-structures.goto.php...我猜至少它不是COMEFROM。 - user166390

5

当然,这不是唯一的原因,但是这个(小)变化在像Drupal这样的CMS中创建了很多问题:

注意:函数调用没有引用符号 - 只有函数定义。仅凭函数定义就足以正确地通过引用传递参数。从PHP 5.3.0开始,当您在foo(&$a);中使用&时,您将收到一个警告,提示"调用时传递引用"已被弃用。

摘自PHP: Passing by Reference

因此,可能第一批升级到php 5.3的托管公司被来自小型(且经验不足的)Web管理员的支持请求淹没了。

因此,我想其他公司决定等待更稳定的情况...


2

PHP 5.3并非有缺陷,但它会通过输出提示信息和弃用警告来指出应用程序代码中的不良实践。

因此,在使用旧版php库时,您可能会看到大量错误消息,这些消息可能被视为漏洞。

PHP 5.3.0于2009年6月30日发布,5.2已不再得到php.net的官方支持。如果您的托管公司没有采取行动,那么现在是时候换一个服务了。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接