PHP_JSON_API void php_json_decode_ex(zval *return_value, char *str, size_t str_len, zend_long options, zend_long depth) /* {{{ */ { php_json_parser parser; php_json_parser_init(&parser, return_value, str, str_len, (int)options, (int)depth); if (php_json_yyparse(&parser)) { JSON_G(error_code) = php_json_parser_error_code(&parser); RETURN_NULL(); } }
PHP_JSOND_API void PHP_JSOND_NAME(decode_ex)(zval *return_value, char *str, int str_len, long options, long depth TSRMLS_DC) /* {{{ */ { php_json_parser parser; php_json_parser_init(&parser, return_value, str, str_len, options, depth TSRMLS_CC); if (php_json_yyparse(&parser)) { JSOND_G(error_code) = php_json_parser_error_code(&parser); RETURN_NULL(); } }
PHP_JSON_API int php_json_decode_ex(zval *return_value, char *str, size_t str_len, zend_long options, zend_long depth) /* {{{ */ { php_json_parser parser; php_json_parser_init(&parser, return_value, str, str_len, (int)options, (int)depth); if (php_json_yyparse(&parser)) { php_json_error_code error_code = php_json_parser_error_code(&parser); if (!(options & PHP_JSON_THROW_ON_ERROR)) { JSON_G(error_code) = error_code; } else { zend_throw_exception(php_json_exception_ce, php_json_get_error_msg(error_code), error_code); } RETVAL_NULL(); return FAILURE; } return SUCCESS; }