PHP 8.4.0 RC4 available for testing

get_defined_constants

(PHP 4 >= 4.1.0, PHP 5, PHP 7, PHP 8)

get_defined_constantsTüm sabitlerin isimlerini ve değerlerini içeren bir ilişkisel dizi döndürür

Açıklama

get_defined_constants(bool $sınıfla = false): array

Tanımlı olan tüm sabitlerin isimlerini ve değerlerini içeren bir ilişkisel dizi döndürür. Eklentilerce oluşturulanların yanında define() işleviyle tanımlananları da döndürür.

Bağımsız Değişkenler

sınıfla

true belirtildiği takdirde, dizinin içerdiği sabitler dizinin ilk anahtarlarının altında sınıflandırılırlar.

<?php
define
("SABİT", 1);
print_r(get_defined_constants(true));
?>

Yukarıdaki örnek şuna benzer bir çıktı üretir:

Array
(
    [Core] => Array
        (
            [E_ERROR] => 1
            [E_WARNING] => 2
            [E_PARSE] => 4
            [E_NOTICE] => 8
            [E_CORE_ERROR] => 16
            [E_CORE_WARNING] => 32
            [E_COMPILE_ERROR] => 64
            [E_COMPILE_WARNING] => 128
            [E_USER_ERROR] => 256
            [E_USER_WARNING] => 512
            [E_USER_NOTICE] => 1024
            [E_ALL] => 2047
            [TRUE] => 1
        )

    [pcre] => Array
        (
            [PREG_PATTERN_ORDER] => 1
            [PREG_SET_ORDER] => 2
            [PREG_OFFSET_CAPTURE] => 256
            [PREG_SPLIT_NO_EMPTY] => 1
            [PREG_SPLIT_DELIM_CAPTURE] => 2
            [PREG_SPLIT_OFFSET_CAPTURE] => 4
            [PREG_GREP_INVERT] => 1
        )

    [user] => Array
        (
            [SABİT] => 1
        )

)

Dönen Değerler

sabit_adı => sabit_değeri dizisini döndürür. Seçimlik olarak, sabitler eklenti isimlerine göre gruplandırılır.

Örnekler

Örnek 1 - get_defined_constants() örneği

<?php
print_r
(get_defined_constants());
?>

Yukarıdaki örnek şuna benzer bir çıktı üretir:

Array
(
    [E_ERROR] => 1
    [E_WARNING] => 2
    [E_PARSE] => 4
    [E_NOTICE] => 8
    [E_CORE_ERROR] => 16
    [E_CORE_WARNING] => 32
    [E_COMPILE_ERROR] => 64
    [E_COMPILE_WARNING] => 128
    [E_USER_ERROR] => 256
    [E_USER_WARNING] => 512
    [E_USER_NOTICE] => 1024
    [E_ALL] => 2047
    [TRUE] => 1
)

Ayrıca Bakınız

add a note

User Contributed Notes 5 notes

up
23
Bob
16 years ago
Add this method to your class definition if you want an array of class constants (get_defined_constants doesn't work with class constants as Peter P said above):

<?php
public function get_class_constants()
{
$reflect = new ReflectionClass(get_class($this));
return
$reflect->getConstants());
}
?>

You could also override stdObject with it so that all your classes have this method
up
12
R4FC0R3
6 years ago
If you want to access directly on one category, just use:

<?php

print_r
(get_defined_constants(true)['Core']);

?>

you can replace 'Core' by the category you wish (e.g. user):

<?php

print_r
(get_defined_constants(true)['user']);

?>

Warning: only use this on development side
up
9
Anonymous
18 years ago
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] =>
)
up
5
me at gogogadgetscott dot info
19 years ago
<?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;
}
?>
up
-3
S-Tian
2 years ago
If you want to create a static method that you can copy and paste into each class you have constants created, you can use:

<php
public static function get_class_constants(): array
{
$reflect = new ReflectionClass(self::class);

return $reflect->getConstants();
}
?>
To Top