summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Zend/tests/017.phpt18
-rw-r--r--Zend/zend_builtin_functions.c33
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;