|
get_defined_constants
Returns an associative array with the names of all the constants and their values
(PHP 4 >= 4.0.7, PHP 5)
Returns the names and values of all the constants currently defined. This includes those created by extensions as well as those created with the define() function. Parameters
ExamplesExample 1834. get_defined_constants() Example<?php The above example will output something similar to: Array Code Examples / Notes » get_defined_constants05-jan-2006 07:29
If you want to filter through and return only the prefix for your constants (i.e. you have constants with a naming scheme), then you can use this quick little function. It comes in handy for debugging. <?php function returnConstants ($prefix) { foreach (get_defined_constants() as $key=>$value) if (substr($key,0,strlen($prefix))==$prefix) $dump[$key] = $value; if(empty($dump)) { return "Error: No Constants found with prefix '".$prefix."'"; } else { return $dump; } } ?> Example: <?php define("SITENAME_OPTION_ONE",true); define("SITENAME_OPTION_TWO",false); define("SITENAME_URL","foo"); print_r(returnConstants("SITENAME_OPTION")); ?> Will return: Array ( [SITENAME_OPTIONONE] => 1 [SITENAME_OPTIONTWO] => ) eslindsey
If you need to use the values of your defined constants in strings or for example in HEREDOC syntax, use this function: <?php //PHP5+ only $constarray = get_defined_constants(true); foreach($constarray['user'] as $key => $val) eval(sprintf('$_CONSTANTS[\'%s\'] = \'%s\';', addslashes($key), addslashes($val))); //PHP4+ ...this is less efficient since it defines hundreds of constants foreach(get_defined_constants() as $key => $val) eval(sprintf('$_CONSTANTS[\'%s\'] = \'%s\';', addslashes($key), addslashes($val))); ?> Once you run that you can use $_CONSTANTS['constantname'] to get the value of a constant. You'll need to erase the array and rerun the code if you define any new constants. But I found it handy when I wanted to use a couple of my defined constants in HEREDOC syntax. Don't forget: because this is not really a superglobal you'll need to globalize it if you want to use it from within a different scope, for example: <?php //hopefully you ran the snippet out here so that $_CONSTANTS is in global scope. $mv = $_CONSTANTS['foo']; //works function my_function() { global $_CONSTANTS; //without this line it won't work in here! $mv = $_CONSTANTS['bar']; //works thanks to previous line } ?> peter p.
Does not return class constants in PHP 5.
me
<?php /** * Convert constant value into string name. * * @param mixed Constant value. * @return string Constant name. * @access public */ function sch_get_consant($value) { $constants = get_defined_constants(); $name = array_search($value, $constants, TRUE); return $name; } ?> |
Change Languageassert_options assert dl extension_loaded get_cfg_var get_current_user get_defined_constants get_extension_funcs get_include_path get_included_files get_loaded_extensions get_magic_quotes_gpc get_magic_quotes_runtime get_required_files getenv getlastmod getmygid getmyinode getmypid getmyuid getopt getrusage ini_alter ini_get_all ini_get ini_restore ini_set main memory_get_peak_usage memory_get_usage php_ini_scanned_files php_logo_guid php_sapi_name php_uname phpcredits phpinfo phpversion putenv restore_include_path set_include_path set_magic_quotes_runtime set_time_limit sys_get_temp_dir version_compare zend_logo_guid zend_thread_id zend_version |