diff options
-rw-r--r-- | Zend/tests/017.phpt | 18 | ||||
-rw-r--r-- | Zend/zend_builtin_functions.c | 33 |
2 files changed, 25 insertions, 26 deletions
diff --git a/Zend/tests/017.phpt b/Zend/tests/017.phpt index b336d54eb0..9112a486fe 100644 --- a/Zend/tests/017.phpt +++ b/Zend/tests/017.phpt @@ -12,7 +12,9 @@ var_dump(get_resource_type($fp)); var_dump(gettype(get_loaded_extensions())); var_dump(count(get_loaded_extensions())); +var_dump(gettype(get_loaded_extensions(true))); var_dump(count(get_loaded_extensions(true))); +var_dump(get_loaded_extensions(true, true)); define("USER_CONSTANT", "test"); @@ -52,9 +54,13 @@ string(6) "stream" string(7) "Unknown" string(5) "array" int(%d) -int(2) +string(5) "array" +int(%d) + +Warning: get_loaded_extensions() expects at most 1 parameter, 2 given in %s line %d +NULL -Warning: Wrong parameter count for get_defined_constants() in %s on line %d +Warning: get_defined_constants() expects at most 1 parameter, 2 given in %s on line %d NULL string(5) "array" string(5) "array" @@ -88,9 +94,13 @@ unicode(6) "stream" unicode(7) "Unknown" unicode(5) "array" int(%d) -int(2) +unicode(5) "array" +int(%d) + +Warning: get_loaded_extensions() expects at most 1 parameter, 2 given in %s on line %d +NULL -Warning: Wrong parameter count for get_defined_constants() in %s on line %d +Warning: get_defined_constants() expects at most 1 parameter, 2 given in %s on line %d NULL unicode(5) "array" unicode(5) "array" diff --git a/Zend/zend_builtin_functions.c b/Zend/zend_builtin_functions.c index 7cf77e8f5a..27186f8c1c 100644 --- a/Zend/zend_builtin_functions.c +++ b/Zend/zend_builtin_functions.c @@ -1667,50 +1667,39 @@ static int add_constant_info(zend_constant *constant, void *arg TSRMLS_DC) /* {{ } /* }}} */ -/* {{{ proto array get_loaded_extensions([mixed categorize]) U +/* {{{ proto array get_loaded_extensions([bool zend_extensions]) U Return an array containing names of loaded extensions */ ZEND_FUNCTION(get_loaded_extensions) { - int argc = ZEND_NUM_ARGS(); + int zendext = 0; - if (argc != 0 && argc != 1) { - ZEND_WRONG_PARAM_COUNT(); + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "|b", &zendext) == FAILURE) { + return; } array_init(return_value); - if (argc) { - zval *modules; - zval *extensions; - - MAKE_STD_ZVAL(modules); - array_init(modules); - zend_hash_apply_with_argument(&module_registry, (apply_func_arg_t) add_extension_info, modules TSRMLS_CC); - add_ascii_assoc_zval_ex(return_value, "PHP Modules", sizeof("PHP Modules"), modules); - - MAKE_STD_ZVAL(extensions); - array_init(extensions); - zend_llist_apply_with_argument(&zend_extensions, (llist_apply_with_arg_func_t) add_zendext_info, extensions TSRMLS_CC); - add_ascii_assoc_zval_ex(return_value, "Zend Extensions", sizeof("Zend Extensions"), extensions); + if (zendext) { + zend_llist_apply_with_argument(&zend_extensions, (llist_apply_with_arg_func_t) add_zendext_info, return_value TSRMLS_CC); } else { zend_hash_apply_with_argument(&module_registry, (apply_func_arg_t) add_extension_info, return_value TSRMLS_CC); } } /* }}} */ -/* {{{ proto array get_defined_constants([mixed categorize]) U +/* {{{ proto array get_defined_constants([bool categorize]) U Return an array containing the names and values of all defined constants */ ZEND_FUNCTION(get_defined_constants) { - int argc = ZEND_NUM_ARGS(); + int categorize = 0; - if (argc != 0 && argc != 1) { - ZEND_WRONG_PARAM_COUNT(); + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "|b", &categorize) == FAILURE) { + return; } array_init(return_value); - if (argc) { + if (categorize) { HashPosition pos; zend_constant *val; int module_number; |