php number_format出错

时间:2013-09-20 15:25:44

标签: php

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

<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>

2 个答案:

答案 0 :(得分:0)

PHP可以设置为禁用警告(在php.ini中),这就是为什么两个webhost的行为不同。您可以阅读有关此here

的更多信息

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

答案 1 :(得分:0)

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

错误消息意味着返回$ C作为对象,而不是其方法sfrfv()返回的数值结果。如果你省略number_format()并输出原始数字......那么会出现什么呢?

我肯定会确保你在两个系统(每个SuperTron)上获得相同级别的错误消息,并确保你没有忽略从一个对象转变为数字的虚假返回值。