【问题标题】:Missing JSON_PRESERVE_ZERO_FRACTION in php 5.6.8php 5.6.8 中缺少 JSON_PRESERVE_ZERO_FRACTION
【发布时间】:2017-04-05 01:12:38
【问题描述】:

我在 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 (php -a),这个常量仍然是未定义的。所以我认为这与应用程序无关。

【问题讨论】:

  • 您在命名空间内吗?
  • 是的,但我不认为它相关,我也用纯 PHP 交互模式检查过,仍然缺少常量。
  • 您使用的 PPA 可能存在问题。建议您使用deb.sury.org/#bug-reporting 询问该人。

标签: php ubuntu-12.04


【解决方案1】:

应在PHP 5.6.6+ 中提供。

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

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

【讨论】:

    【解决方案2】:

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

    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);
    }
    

    【讨论】:

      猜你喜欢
      • 2015-09-19
      • 1970-01-01
      • 2015-08-12
      • 2019-10-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-01-13
      • 1970-01-01
      相关资源
      最近更新 更多