【发布时间】:2015-08-19 19:46:23
【问题描述】:
所以现在我正在使用这个请求从 json API (battle.net) 中提取数据
https://us.api.battle.net/wow/realm/status?locale=en_US&realms=runetotem&apikey=xxxxxxxxxxxxxxx
API 密钥被故意隐藏,这将返回以下内容
{
"realms": [{
"type": "pve",
"population": "medium",
"queue": false,
"wintergrasp": {
"area": 1,
"controlling-faction": 1,
"status": 0,
"next": 1433468324674
},
"tol-barad": {
"area": 21,
"controlling-faction": 1,
"status": 2,
"next": 1433465638814
},
"status": true,
"name": "Runetotem",
"slug": "runetotem",
"battlegroup": "Vengeance",
"locale": "en_US",
"timezone": "America/Los_Angeles",
"connected_realms": ["uther", "runetotem"]
}]
}
我使用 php 将其放入数组中,然后尝试在 if 语句中调用所述数组中的值,但是 if 语句始终为我的检查触发 true。我完全不明白为什么,如果有人可以请帮忙,那就太好了。代码如下。
<?php
$json_url = "https://us.api.battle.net/wow/realm/status?locale=en_US&realms=runetotem&apikey=xxxxxxxxxxx";
$json = file_get_contents($json_url);
$data = json_decode($json, TRUE);
?>
<tr class="latestthreads_portal">
<td width="230px" class="trow3">
<strong>Realm Status</strong>
<span class="smalltext"><br />
<?php if ($data['realms'][0]['status'] == 2)
{
echo "up";
}
else{
echo "Down?";
}
?>
<br />
<br /> <div class="border"></div>
</span>
</td>
</tr>
请原谅糟糕的格式,匆忙。
【问题讨论】:
-
调试它,回显 | (
var_dump()) 你正在检查的值 -
尝试检查类型,所以
if($data['realms'][0]['status'] === 2) -
$data['realms'][0]['status']设置为 true。你的意思是$data['realms'][0]['wintergrasp']['status']?
标签: php arrays json variables if-statement