A5下载 - 努力做内容最丰富最安全的下载站!

A5站长下载站

当前位置:A5下载 > 源码技巧 > Ecshop > ecshop在php5.3以上的错误number_format() 解决方案

ecshop在php5.3以上的错误number_format() 解决方案

时间:2015-07-22 15:15作者:fang人气:64

ecshop在php5.3上报错:

Warning: number_format() expects parameter 1 to be double, string given inD:*******includeslib_common.php on line 959

Warning: number_format() expects parameter 1 to be double, string given inD:*******includeslib_common.php 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+$/', '123', 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,php5.3,以上,错误,number,for

相关下载

查看所有评论+

网友评论

网友
您的评论需要经过审核才能显示

公众号