JSON_BIGINT_AS_STRING eliminado en php 5.5?

Me parece que la constante JSON_BIGINT_AS_STRING se elimina de json_decode() en PHP 5.5.

Utilizo PHP “5.5.3-1ubuntu2” (Ubuntu 13.10) y obtuve este error desde la actualización de PHP 5.4 (Ubuntu 13.04):

Advertencia: json_decode (): opción JSON_BIGINT_AS_STRING no implementada en …

¿Hay alguna evidencia de que esto se elimine?


EDITAR:

No necesito esa función, así que agregué esta constante:

 define('USE_JSON_BIGINT_AS_STRING',(!version_compare(PHP_VERSION,'5.5', '>=') and defined('JSON_BIGINT_AS_STRING'))); 

y donde sea que use json_decode (), uso esto:

 if(USE_JSON_BIGINT_AS_STRING) $j= json_decode($json ,true, 512, JSON_BIGINT_AS_STRING ); else $j= json_decode($json,true ); 

Como se mencionó anteriormente, este error parece provenir de una versión con errores de pecl-json-c, que Ubuntu empaqueta como un alias para php5-json debido a problemas de licencia.

Una solución alternativa que encontré, gracias al proyecto firebase / php-jwt , es verificar la constante JSON_C_VERSION establecida por pecl-json-c, en lugar de USE_JSON_BIGINT_AS_STRING . (Dado que USE_JSON_BIGINT_AS_STRING está definido, pero no implementado).

Aquí está el código del proyecto JWT :

 =') && !(defined('JSON_C_VERSION') && PHP_INT_SIZE > 4)) { /** In PHP >=5.4.0, json_decode() accepts an options parameter, that allows you * to specify that large ints (like Steam Transaction IDs) should be treated as * strings, rather than the PHP default behaviour of converting them to floats. */ $obj = json_decode($input, false, 512, JSON_BIGINT_AS_STRING); } else { /** Not all servers will support that, however, so for older versions we must * manually detect large ints in the JSON string and quote them (thus converting *them to strings) before decoding, hence the preg_replace() call. */ $max_int_length = strlen((string) PHP_INT_MAX) - 1; $json_without_bigints = preg_replace('/:\s*(-?\d{'.$max_int_length.',})/', ': "$1"', $input); $obj = json_decode($json_without_bigints); } 

Parece que esto se introdujo en algunas distribuciones de Linux debido a problemas de LICENCIA y está utilizando un módulo JEC-c PECL afectado.

Mi sugerencia sería usar una versión más nueva del módulo.