2016-03-11 83 views
0

我有2个不同的JSON文件,并且想要在2个节点具有相同版本号时打印消息。但是,当两个节点的修订版本相同时,我的代码不会通过条件。我甚至包含了打印语句来验证两个修订号是否相同。这里是我的代码:PHP条件语句不起作用

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语句里面”从未被打印过。

+2

http://php.net/manual/en/function.error-reporting.php无法知道'$ revision'的定义在哪里。 –

回答

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;