好吧,我在游戏服务器上有一个包含信息的服务器查询数组。我制作了一个进度条,显示当前的玩家数量。此进度条的百分比计算如下
<span style="width: ' . $data['gq_numplayers'] / $data['gq_maxplayers'] * 100 . '%;"></span>
现在,如果服务器处于脱机状态,我会遇到问题,因为数组为空并且除法将为0/0并导致错误。如何绕过/解决这个问题?
答案 0 :(得分:5)
也许使用if
语句就是解决方案。
即
if ($data['gq_maxplayers'] == 0) {
echo '<span style="width: 0%;"></span>';
} else {
echo '<span style="width: ' . $data['gq_numplayers'] / $data['gq_maxplayers'] * 100 . '%;"></span>';
}
答案 1 :(得分:1)
您可以添加一个if来检查数据是否为空。您可以使用array_key_exists('gq_numplayers', $data)
检查服务器上是否存在问题。
如果出现问题,您可以显示所需的任何消息。以下是代码示例:
if (array_key_exists('gq_numplayers', $data)) {
<span style="width: ' . $data['gq_numplayers'] / $data['gq_maxplayers'] * 100 . '%;"></span>
}
else {
// Do whatever you want.
}
if (array_key_exists('gq_numplayers', $data)) {
<span style="width: ' . $data['gq_numplayers'] / $data['gq_maxplayers'] * 100 . '%;"></span>
}
else {
// Do whatever you want.
}
答案 2 :(得分:1)
在执行计算之前,请检查分母是否为0
,而不是重置值。如果是0
,则将百分比显示为0%
。如果分母0
是一个意外情况,那么您可能希望显示错误消息或说数据不可用。例如:
$percentage = 0;
if ($data['gq_maxplayers'] > 0) {
$percentage = ($data['gq_numplayers'] / $data['gq_maxplayers']) * 100;
}
echo '<span style="width: ' . $percentage . '%;"></span>";
答案 3 :(得分:0)
使用条件来计算百分比。您可以使用内联if
<span
style="width: ' . $data['gq_numplayers'] /
(($data['gq_maxplayers'] != 0)
? $data['gq_maxplayers']
: 1) * 100 . '%;"></span>
答案 4 :(得分:0)
首先检查$data['gq_maxplayers']
是否为0,然后计算元素的宽度。
<?php $data['gq_maxplayers'] = ($data['gq_maxplayers'] == 0) ? 0 : $data['gq_maxplayers']; ?>
<span style="width: ' . $data['gq_numplayers'] / $data['gq_maxplayers'] * 100 . '%;"></span>
答案 5 :(得分:0)
<?php if ($data['gq_maxplayers']>0 ) { ?>
<span style="width: ' . $data['gq_numplayers'] / $data['gq_maxplayers'] * 100 . '%;"></span>
<?php } else{ ?>
<span style="width:0%;"></span>
<?php } ?>
答案 6 :(得分:0)
您甚至可以使用内联简写方式 ...
echo '<span style="width: ' . ($data['gq_maxplayers'] != 0 ? $data['gq_numplayers'] / $data['gq_maxplayers'] * 100 : '0') . '%;"></span>';