PHP条件语句不起作用

时间:2016-03-11 00:48:56

标签: php parsing printing conditional

我有2个不同的JSON文件,如果2个节点具有相同的版本号,则需要打印消息。但是,当2个节点的修订版本相同时,我的代码不会通过条件。我甚至包括print语句来验证两个版本号是否相同。这是我的代码:

foreach($xml_2->logentry as $node2):
            $revision_log = $node2[0]['revision'];
            print "revision: ";
            print $revision;
            echo "<br>";
            print "revision_log: ";
            print $revision_log;
            echo "<br>";

            if ($revision_log == $revision){
                print "Got inside of if statement";
                $msg = $node2->msg;
                print "msg: ";
                print $msg;
                echo "<br>";
            }
        endforeach; 

以下是一些输出:

revision_log: 5066
revision: 1282
revision_log: 3757
revision: 1282
revision_log: 3756
revision: 1282
revision_log: 1285
revision: 1282
revision_log: 1282
revision: 1282
revision_log: 1247
revision: 1282
revision_log: 1140

现在,在修订版1282中,代码应该跳转到我的条件,但事实并非如此。有谁知道为什么?从来没有打印过if if语句。

1 个答案:

答案 0 :(得分:0)

我没有意识到$ revision变量是一个字符串。我宣布它与$ revision_log一样。 JSON必须是不同的。我刚刚将$ revision转换为int变量,现在一切正常。

foreach($xml_2->logentry as $node2):
            $revision_log = $node2[0]['revision'];                                                      
            $revision_int = (int) $revision;
            if ($revision_log == $revision_int){
                $msg = $node2->msg;
                print "Commit Message: ";
                print $msg;
                echo "<br>";
            }
endforeach;