版本号的小陷阱

ps.本文所有红色的文字均为错误观点。

首先提出一个问题,php5.3.3和php5.3.21哪个版本高?perl5.1和perl5.01的版本哪个高?

perl中有时候可以看到这么一段代码:

use 5.010

这其中5.010就是perl的版本号。如果写成这个样子呢?

use 5.1

那么这回就不好玩了,perl会认为你要的是5.100,因为perl的版本号是3位小数的。

最近在搭lnmp环境,看到有的文章说PHP5.3.3以上的版本可以支持[HOST=xxx]这样的php.ini写法(via LNMP下防跨站、跨目录安全设置,仅支持PHP 5.3.3以上版本)。于是跑去php官网看,发现最新的php版本才5.3.21。我下意识的觉得,5.3.21要比5.3.3低(php5.3.30>php5.2.21)。于是直接升级到了php5.4.11。可是升级之后,GBK编码的DiscuzX的短消息全部成了空白。于是一脸悲剧的重装php到5.3.21,以为那个防跨站方法无缘了。但是实际测试发现,php5.3.21也能支持那样的写法。

于是这是怎么回事呢?PHP的版本号命名,其实是由3段数字组成的:主版本号、次版本号、发行次数。

因此,php5.3.21的意义是“5.3版本第21个发行版本”,而php5.3.3呢,则是“5.3版本的第3个发行版本”。显而易见的,21>3,所以php5.3.21比php5.3.3新也是理所当然的了,而不能错误的认为,php5.3.3比php5.3.21高

哦,对了,文章前面问题的答案呢?自然是perl 5.1和php5.3.21的版本要高了。

评论

还没有评论。

发表评论

发表评论代表你授权本网站存储并在必要情况下使用你输入的邮箱地址、连接本站服务器使用的 IP 地址和用户代理字符串 (User Agent) 用于发送评论回复邮件,以及将上述信息分享给 Libravatar Akismet,用于显示头像和反垃圾。