|
|
|
@ -41,6 +41,7 @@ static const char digits[] = "0123456789abcdef"; |
|
|
|
#define PHP_JSON_HEX_AMP (1<<1) |
|
|
|
#define PHP_JSON_HEX_APOS (1<<2) |
|
|
|
#define PHP_JSON_HEX_QUOT (1<<3) |
|
|
|
#define PHP_JSON_FORCE_OBJECT (1<<4) |
|
|
|
|
|
|
|
ZEND_DECLARE_MODULE_GLOBALS(json) |
|
|
|
|
|
|
|
@ -75,6 +76,7 @@ static PHP_MINIT_FUNCTION(json) |
|
|
|
REGISTER_LONG_CONSTANT("JSON_HEX_AMP", PHP_JSON_HEX_AMP, CONST_CS | CONST_PERSISTENT); |
|
|
|
REGISTER_LONG_CONSTANT("JSON_HEX_APOS", PHP_JSON_HEX_APOS, CONST_CS | CONST_PERSISTENT); |
|
|
|
REGISTER_LONG_CONSTANT("JSON_HEX_QUOT", PHP_JSON_HEX_QUOT, CONST_CS | CONST_PERSISTENT); |
|
|
|
REGISTER_LONG_CONSTANT("JSON_FORCE_OBJECT", PHP_JSON_FORCE_OBJECT, CONST_CS | CONST_PERSISTENT); |
|
|
|
|
|
|
|
REGISTER_LONG_CONSTANT("JSON_ERROR_NONE", PHP_JSON_ERROR_NONE, CONST_CS | CONST_PERSISTENT); |
|
|
|
REGISTER_LONG_CONSTANT("JSON_ERROR_DEPTH", PHP_JSON_ERROR_DEPTH, CONST_CS | CONST_PERSISTENT); |
|
|
|
@ -174,7 +176,7 @@ static void json_encode_array(smart_str *buf, zval **val, int options TSRMLS_DC) |
|
|
|
|
|
|
|
if (Z_TYPE_PP(val) == IS_ARRAY) { |
|
|
|
myht = HASH_OF(*val); |
|
|
|
r = json_determine_array_type(val TSRMLS_CC); |
|
|
|
r = (options & PHP_JSON_FORCE_OBJECT) ? 1 : json_determine_array_type(val TSRMLS_CC); |
|
|
|
} else { |
|
|
|
myht = Z_OBJPROP_PP(val); |
|
|
|
r = 1; |
|
|
|
|