我有 2 个不同的 JSON 文件,如果 2 个节点具有相同的修订号,我想打印一条消息。但是,当 2 个节点的修订版相同时,我的代码不会通过条件。我甚至包括了打印语句来验证两个修订号是否相同。这是我的代码:
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语句内部"永远不会打印。
我没有意识到$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;