ecshop在php5.3以上的错误number_format() 解决方案
2012-09-17 17:07
204 查看
ecshop在php5.3上报错:
Warning: number_format() expects parameter 1 to be double, string given inD:\*******\includes\lib_common.php on
line 959
Warning: number_format() expects parameter 1 to be double, string given inD:\[b]*******\includes\lib_common.php[/b] on
line 959
这个错误是ecshop 在php5.3以上的报错
原因是配送插件里面的免费额度为0,ec本身的bug导致了$price的值为空值,直接调用number_format出现了错误。
解决方案如下:
/**
* 格式化商品价格
*
* @access public
* @param float $price 商品价格
* @return string
*/
function price_format($price, $change_price = true)
{
if ($change_price && defined('ECS_ADMIN') === false)
{
switch ($GLOBALS['_CFG']['price_format'])
{
case 0:
$price = number_format($price, 2, '.', '');
break;
case 1: // 保留不为 0 的尾数
$price = preg_replace('/(.*)(\\.)([0-9]*?)0+$/', '\1\2\3', number_format($price, 2, '.', ''));
if (substr($price, -1) == '.')
{
$price = substr($price, 0, -1);
}
break;
case 2: // 不四舍五入,保留1位
$price = substr(number_format($price, 2, '.', ''), 0, -1);
break;
case 3: // 直接取整
$price = intval($price);
break;
case 4: // 四舍五入,保留 1 位
$price = number_format($price, 1, '.', '');
break;
case 5: // 先四舍五入,不保留小数
$price = round($price);
break;
}
}
else
{
if(!$price){
$price = 0;
}
$price = number_format($price, 2, '.', '');
}
return sprintf($GLOBALS['_CFG']['currency_format'], $price);
}
相关文章推荐
- ecshop number_format() 在php5.3以上的错误解决方案
- ecshop number_format() 在php5.3以上的错误解决方案
- 在PHP5.3以上版本运行ecshop和ecmall出现的问题及解决方案
- 在PHP5.3以上版本运行ecshop和ecmall出现的问题及解决方案
- 在PHP5.3以上版本运行ecshop和ecmall出现的问题及解决方案
- 在PHP5.3以上版本运行ecshop和ecmall出现的问题及解决方案
- 在PHP5.3以上版本运行ecshop和ecmall出现的问题及解决方案
- 在PHP5.3以上版本运行ecshop出现的问题及解决方案
- 在PHP5.3以上版本运行ecshop和ecmall出现的问题及解决方案
- 在PHP5.3以上版本运行ecshop出现的问题及解决方案
- 在PHP5.3以上版本运行ecshop出现的问题及解决方案
- 在PHP5.3以上版本运行ecshop和ecmall出现的问题及解决方案
- 在PHP5.3以上版本运行 ecmall 出现的问题及解决方案
- 在PHP5.3以上版本运行 ecmall 出现的问题及解决方案
- ecshop和Ucenter 通信失败终极解决方法!(附带php5.3以上,出现其他问题解决方法)
- 在PHP5.3以上版本运行 ecmall 出现的问题及解决方案
- ecshop在PHP 5.4以上版本各种错误问题处理
- 在PHP5.3以上版本运行 ecmall 出现的问题及解决方案
- 在PHP5.3以上版本运行 ecmall 出现的问题及解决方案
- Apache2.2整合PHP5.3以上的版本时提示错误Cannot load php5apache2_2.dll into server解决方法