-1

Warning: number_format() expects parameter 1 to be double, object given in /home/rainingt/public_html/quadhits/index.php on line 165我从我的一个交换站点收到此错误。但不能从不同的虚拟主机获得。当 2 个站点来自同一个脚本时,可能会出现什么问题?

<tr>
    <td style="color: black">Pages shown today</td>
    <td style="color: #336699; font-weight: bold">: <?=number_format($C->sfrfv('sum(num)', '7statsite', 'where date="'.date('Y-m-d').'"'), 0, '', ' ')?></td>
</tr>
<tr>
    <td style="color: black">Pages yesterday</td>
    <td style="color: #336699; font-weight: bold">: <?=number_format($C->sfrfv('sum(num)', '7statsite', 'where date="'.date('Y-m-d', time() - 86400).'"'), 0, '', ' ')?></td>
</tr>
<tr>
    (page165)<td style="color: black">Unique surfers today</td>
<td style="color: #336699; font-weight: bold">: <?= number_format( $C->sfrfv('count(usrid)', '7stat', 'where date="'.date('Y-m-d').'" group by date'), 0, '', ' ')?></td>
</tr>
<tr>
    <td style="color: black">Unique surfers yesterday</td>
<td style="color: #336699; font-weight: bold">: <?=number_format($C->sfrfv('count(usrid)', '7stat', 'where date="'.date('Y-m-d', time() - 86400).'" group by date'), 0, '', ' ')?>
</tr>
4

2 回答 2

0

PHP 可以设置为禁用警告(在 php.ini 中),这就是这两个虚拟主机行为不同的原因。您可以在此处阅读有关此内容的更多信息

至于删除警告,您可以做两件事。您可以$C->sfrfv()将 return 设为 double,或者您可以通过执行以下操作在每次调用中将 return 转换为 double:((double)$C->sfrfv()假设它应该返回一个数字)。

于 2013-09-20T15:38:02.970 回答
0

您似乎</td>在违规行+1 上遗漏了 a,但这不应该触发这样的错误。您可以尝试删除多余的空格(在 number_format 和 $C 之前,与没有错误的行相比),看看它是否有帮助。我看不出任何其他可能导致该错误的差异。额外的空间不应该有影响,但谁知道呢?

该错误消息暗示 $C 作为对象返回,而不是来自其方法 sfrfv() 的数字结果。如果您省略 number_format() 并仅输出原始数字怎么办......然后会出现什么?

我肯定会确保您在两个系统上(每个 SuperTron)都收到相同级别的错误消息,并确保您不会忽略一个虚假的返回值,它们默默地从一个对象变成一个数字。

于 2013-09-20T16:02:05.860 回答