我正在开发一款需要处理能量的浏览器游戏。用户花费并获得能量,但我遇到了一个我试图解决的问题,当一个用户拥有例如20能量并且他做了30点能量的事情它正在经历并且当然我理解因为我正在检查价值不要像这样低于0
if ( 0 < $resultenergy[0]['energy'])
这意味着除非用户能量为0,否则他可以花费任何他想要的东西。什么是检查数据的更好方法,以便在“尝试”低于0时发出警报?我很感激所有的帮助,如果你对所有的耳朵都有不同的看法。
答案 0 :(得分:3)
进行一次计算。
$remaining_energy = $current_energy - $energy_cost;
然后检查结果,并采取相应的行动。
if ($remaining_energy >= 0) {
$current_energy = $remaining_energy;
// do whatever required the energy
// send the client a succes indicator
} else {
// don't change current energy
// send the client an error indicator
}
答案 1 :(得分:1)
您可以减去然后进行评估。 e.g。
if ( 0 < $resultenergy[0]['energy'] - $energyCost) {
$resultenergy[0]['energy'] = $resultenergy[0]['energy'] - $energyCost;
return true
} else {
return false;
}
$ energyCost是他们试图采取的任何行动的代价。