我遇到了一个无法解决的小问题。
所以我得到了这个错误消息:
未定义的属性:stdClass::$wins
但我对我的对象进行了var_dump,它在其中获胜…
我不明白怎么回事。
以下是我如何启动我的对象:
$champStats->gp+=1;
if($matchStats->winner)
$stats->wins += 1;
else
$stats->loss += 1;
我就是这样称呼它的:
$stats=Cache::get($key);
<p>GP: {{$stats->gp}}</p>
<p>Wins: {{$stats->wins)}}</p>
当我做var_dump($stats)时,我得到的是:
object(stdClass)[584]
public 'gp' => int 2
public 'wins' => int 1
我只是不明白问题出在哪里…
以下是我初始化对象的完整代码(注意,我使用laravel框架):
$playerStats = new 'stdClass();
$matches = Match::all();
$matchStats = $match->stats;
$playerStats->gp += 1;
if($matchStats->winner)
$playerStats->wins += 1;
else
$playerStats->loss += 1;
$playerStats->kills += $matchStats->kills;
$playerStats->deaths += $matchStats->deaths;
$playerStats->assists += $matchStats->assists;
Cache::forever($key,$playerStats);
在我看来,我这样称呼它:
$stats=Cache::get($key);
<p>GP: {{$stats->gp}}</p>
<p>Wins: {{$stats->wins)}}</p> (This is where I get my error)
<p>Kills: {{$stats->kills)}}</p>
<p>Deaths: {{$stats->deaths)}}</p
以下是完整的错误代码:
653ee84185b758200c82957f836de32f第56行出现错误异常:未定义的属性:stdClass::$wins
谢谢你的帮助,Ara
我猜您在增量过程中收到了通知。在递增之前,请尝试检查变量是否已设置。
if($matchStats->winner) {
if(!isset($stats->wins)) {
$stats->wins = 1;
}
else {
$stats->wins++;
}
}
else {
if(!isset($stats->loss)) {
$stats->loss = 1;
}
else {
$stats->loss++;
}
}
另一个(可能更好)选项是在创建$stats
时将$stats->wins
和$stats->loss
初始化为0。
您可以尝试使用数组约定访问值吗
$stats=Cache::get($key);
<p>GP: {{$stats['gp']}}</p>
<p>Wins: {{$stats['wins'])}}</p>
祝你好运!