我的问题是在我的代码中,我在计算一个变量时遇到了问题,这个变量有时不存在,有时存在。
如果为空,我希望它能给我返回死亡人数"0",如果不打印变量中的内容,但出于某种原因,我得到了这个:
E_NOTIFY:type 8--未定义的属性:stdClass::$numDeaths--位于第66行E_警告:类型2——除以零——在第71行
这是我的代码:
<?php
$apiKey = 'e9044828-20e3-46cc-9eb5-545949299803';
$summonerName = 'tamini';
$new = rawurlencode($summonerName);
$news = str_replace(' ', '', $summonerName);
$str = strtolower($news);
// get the basic summoner info
$result = file_get_contents('https://euw.api.pvp.net/api/lol/euw/v1.4/summoner/by-name/' . $new . '?api_key=' . $apiKey);
$summoner = json_decode($result)->$str;
$id = $summoner->id;
// var_dump($summoner);
?>
<?php
$clawzz = file_get_contents('https://euw.api.pvp.net/api/lol/euw/v1.3/game/by-summoner/' . $id . '/recent?api_key=' . $apiKey);
$gazazz = json_decode($clawzz);
?>
<?php
$entrieszz = $gazazz->games;
usort($entrieszz, function($ac,$bc){
return $bc->createDate-$ac->createDate;
});
foreach($entrieszz as $statSummaryzz){
$gamemodekillz = $statSummaryzz->stats->championsKilled;
$gamemodedeathz = $statSummaryzz->stats->numDeaths;
$gamemodeassistz = $statSummaryzz->stats->assists;
$kdamatchhistoryeach = ($gamemodekillz + $gamemodeassistz) / $gamemodedeathz;
echo ' <br>';
echo $gamemodekillz;
echo ' <br>';
if ($gamemodedeathz == 0){
echo '0';
}
else {
echo $gamemodedeathz ;
}
echo ' <br>';
echo $gamemodeassistz;
echo ' <br>';
if ($gamemodedeathz == 0){
echo 'Perfect Score';
}
else {
echo $kdamatchhistoryeach ;
}
?>
您需要检查值是否存在:
if( isset($statSummaryzz->stats) && isset($statSummaryzz->stats->numDeaths) ) {
$gamemodedeathz = $statSummaryzz->stats->numDeaths;
}