PHP 5到7迁移 - 数字比较

Pav*_*vel 17 php php-7

我注意到下面的代码导致PHP 5.x和7中的不同消息:

if ('0xFF' == 255) {
    echo 'Equal';
} else {
    echo 'Not equal';
}
Run Code Online (Sandbox Code Playgroud)
  • 5.x:平等
  • 7:不相等

试图在迁移指南和PHP文档中找到导致它的更改的描述,但找不到任何内容.可能它在某处,我只是错过了它.请你指点一下吗?谢谢!

我看的地方

Mar*_*c B 24

它在这里:http://php.net/manual/en/migration70.incompatible.php

对字符串处理的更改

十六进制字符串不再被视为数字

包含十六进制数字的字符串不再被视为数字.例如:<?php var_dump("0x123" == "291");等等......

  • 如果你绝对必须进行这种比较,你可以在[hexdec](http://php.net/manual/en/function.hexdec.php)中包含十六进制值以获得小数. (4认同)