-3

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

我的一项功能在生产服务器中不起作用。代码如下所示:

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

如果我对此进行 var_dump,结果为 UNKNOWN:0,但如果我在此下方进行 vardump(在转储之前没有任何 if 站),则该功能正常工作,结束转储结果将为 bool(真)或布尔(假)。

(我不覆盖这个变量)

如果我再次注释 var_dump 行,该函数将无法正常工作。

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

在原始函数中:

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

$fieldName 总是来自客户端的“cmdexpid”。(在我的测试用例中)还有一个有趣的消息,一个简单的 echo 也解决了这个问题,但应该是在 this 下。

4

1 回答 1

0

我将php 7.2更改为7.1,无需更改任何代码即可解决问题。(无需转储,自行解决)。

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

于 2018-04-17T12:42:46.170 回答