我从其中一个交换网站收到此错误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>
答案 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)上获得相同级别的错误消息,并确保你没有忽略从一个对象转变为数字的虚假返回值。