我遇到了一个我无法解决的小问题。
所以我收到此错误消息:
未定义的属性: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行中的ErrorException: 未定义的属性:stdClass :: $ wins
感谢您的帮助, ARA
答案 0 :(得分:3)
我猜你在增量期间得到通知。在递增之前尝试检查变量是否已设置。
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->wins
时将$stats->loss
和$stats
初始化为0.
答案 1 :(得分:0)
您可以尝试使用数组约定访问值
$stats=Cache::get($key);
<p>GP: {{$stats['gp']}}</p>
<p>Wins: {{$stats['wins'])}}</p>
祝你好运!