获取一个有时存在但不存在的变量';t


Getting a variable that exists sometimes and doesn't at other times

我的问题是在我的代码中,我在计算一个变量时遇到了问题,这个变量有时不存在,有时存在。

如果为空,我希望它能给我返回死亡人数"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;
}