summaryrefslogtreecommitdiff
path: root/ext/standard/basic_functions.c
diff options
context:
space:
mode:
authorSean Bright <elixer@php.net>2001-05-21 13:36:42 +0000
committerSean Bright <elixer@php.net>2001-05-21 13:36:42 +0000
commit0b716d18b1e05bd0281a61cbd47ff837e6e3abd6 (patch)
tree3b00ed36908666d2b4ae6258d185c549905f9095 /ext/standard/basic_functions.c
parent97ed89521ece8ba730a891cde0ce34a76cd5c1cd (diff)
downloadphp-git-0b716d18b1e05bd0281a61cbd47ff837e6e3abd6.tar.gz
Added get_defined_constants() function. Returns an associative array of
constants mapped to their values. @- Added get_defined_constants() function to return an associative array of @ constants mapped to their values. (Sean) # If anyone sees a problem let me know.
Diffstat (limited to 'ext/standard/basic_functions.c')
-rw-r--r--ext/standard/basic_functions.c21
1 files changed, 21 insertions, 0 deletions
diff --git a/ext/standard/basic_functions.c b/ext/standard/basic_functions.c
index d541627e0e..659187f3a5 100644
--- a/ext/standard/basic_functions.c
+++ b/ext/standard/basic_functions.c
@@ -382,6 +382,7 @@ function_entry basic_functions[] = {
PHP_FE(get_loaded_extensions, NULL)
PHP_FE(extension_loaded, NULL)
PHP_FE(get_extension_funcs, NULL)
+ PHP_FE(get_defined_constants, NULL)
PHP_FE(parse_ini_file, NULL)
@@ -2365,6 +2366,13 @@ static int php_add_extension_info(zend_module_entry *module, void *arg)
return 0;
}
+static int php_add_constant_info(zend_constant *constant, void *arg)
+{
+ zval *name_array = (zval *)arg;
+ add_assoc_zval(name_array, constant->name, &(constant->value));
+ return 0;
+}
+
/* {{{ proto array get_loaded_extensions(void)
Return an array containing names of loaded extensions */
PHP_FUNCTION(get_loaded_extensions)
@@ -2378,6 +2386,19 @@ PHP_FUNCTION(get_loaded_extensions)
}
/* }}} */
+/* {{{ proto array get_defined_constants(void)
+ Return an array containing the names and values of all defined constants */
+PHP_FUNCTION(get_defined_constants)
+{
+ ELS_FETCH();
+
+ if (ZEND_NUM_ARGS() != 0) {
+ WRONG_PARAM_COUNT;
+ }
+
+ array_init(return_value);
+ zend_hash_apply_with_argument(EG(zend_constants), (int (*)(void *, void*)) php_add_constant_info, return_value);
+}
/* {{{ proto bool extension_loaded(string extension_name)
Returns true if the named extension is loaded */