在php 5.6.8中缺少JSON_PRESERVE_ZERO_FRACTION

时间:2016-11-21 15:23:10

标签: php ubuntu-12.04

我在ubuntu 12.04上使用php 5.6.8,尝试json_encode($arr, JSON_PRESERVE_ZERO_FRACTION)JSON_PRESERVE_ZERO_FRACTION未定义。我想也许它是php-json 1.3.7+引入的,所以我试着sudo apt-get install --only-upgrade php5-json,它告诉我我有最新版本的php-json

我正在使用Ondřej Surý PPA作为来源。任何人都知道什么是错的?

修改

我还在没有任何应用程序(php -a)的情况下检查了php,这个常量仍未定义。所以我认为这与应用无关。

2 个答案:

答案 0 :(得分:2)

应该在PHP 5.6.6+中提供。

如果您的某些工具抱怨缺少常量,您可以添加polyfill:

if(!defined('JSON_PRESERVE_ZERO_FRACTION'))
{
    define('JSON_PRESERVE_ZERO_FRACTION', 1024);
}

答案 1 :(得分:0)

我知道这不是解决方案...只是节省一些时间

function precise_round(num, decimals) {
   var t = Math.pow(10, decimals);   
   return (Math.round((num * t) + (decimals>0?1:0)*(Math.sign(num) * (10 / Math.pow(100, decimals)))) / t).toFixed(decimals);
}