我有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语句。
答案 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;