PHP 7.2奇怪的in_array行为

时间:2018-04-17 11:33:00

标签: php php-7.2

我从php 5升级到7.2,并且在本地没有问题(需要进行一些更改,但它已解决)。

我的一个功能是不在生产服务器上工作。 代码如下所示:

$someBool = in_array($some, array("asd", "fgh", "etc"));

如果我对此进行var_dump,结果是UNKNOWN:0,但如果我将vardump正好低于此值(转储前没有任何if站),则该函数正常工作,结束转储结果将是bool (true)或bool(false)。

(我不会覆盖此变量)

再次,如果我评论var_dump行,该函数工作不正常。

有谁知道会导致这种行为的原因是什么? 谢谢你的帮助。

在原始功能中:

$needCmdText = in_array($fieldName,array(
        'cmdpreid','cmdpostid','cmdskipid',
        'cmdfixid','cmdexpid','cmdsysid'
    ));

$ fieldName始终' cmdexpid'来自客户。 (在我的测试用例中) 一个有趣的消息,一个简单的回声也解决了这个问题,但它应该在此之下。

1 个答案:

答案 0 :(得分:0)

我将php 7.2更改为7.1,这解决了问题而没有任何代码更改。 (无需转储,解决)。

我认为php 7.2中存在一个奇怪的错误,它在Windows环境中不会发生。