Warning: number_format() expects parameter 1 to be double, string given in /Volumes/Data/xiaoniba/www/shop.xiaoniba.com/includes/lib_common.php on line 965

将includes\lib_common.php 的957~959行:
else
{
$price = number_format($price, 2, '.', '');
}

修改为

else
{
if(!$price){
$price = 0;
}
$price = number_format($price, 2, '.', '');
}

即可。原因是配送插件里面的免费额度为0,ec本身的bug导致了$price的值为空值,直接调用number_format出现了错误。

赞成lz分析的原因,确实是因为免费额度获取的问题,在PHP5.3上报错
但获取到的应该是一个字符串,所以出错,应该这样改:
function price_format($price, $change_price = true)
{
$price = 0 + $price;//添加这一行,转换成数值

--------------------------------------------------------------------------------------------------------------
上面为论坛网友分析原因和解决办法。

我直接在 includes\lib_common.php中的 priceformat()【格式化商品价格函数】中
加一句

$price = (float)$price; //强制转换$price的数据类型。这样是不是优雅点,萌萌哒

版权声明:
作者:xiaoniba
链接:https://blog.xiaoniba.com/2016/02/03/warning-number_format-expects-parameter-1-to-be-double-string-given-in-volumesdataxiaonibawwwshop-xiaoniba-comincludeslib_common-php-on-line-965/
来源:小泥吧的博客
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
< <上一篇
下一篇>>