Title: AbstractEnum::determineClassEnumerations
Published: May 20, 2026

---

# AbstractEnum::determineClassEnumerations( WordPressAiClientCommonclass-string $className ): WordPressAiClientCommonarray<string,

## In this article

 * [Description](https://developer.wordpress.org/reference/classes/wordpress-aiclient-common-abstractenum/determineclassenumerations/?output_format=md#description)
 * [Parameters](https://developer.wordpress.org/reference/classes/wordpress-aiclient-common-abstractenum/determineclassenumerations/?output_format=md#parameters)
 * [Return](https://developer.wordpress.org/reference/classes/wordpress-aiclient-common-abstractenum/determineclassenumerations/?output_format=md#return)
 * [Source](https://developer.wordpress.org/reference/classes/wordpress-aiclient-common-abstractenum/determineclassenumerations/?output_format=md#source)
 * [Related](https://developer.wordpress.org/reference/classes/wordpress-aiclient-common-abstractenum/determineclassenumerations/?output_format=md#related)
 * [Changelog](https://developer.wordpress.org/reference/classes/wordpress-aiclient-common-abstractenum/determineclassenumerations/?output_format=md#changelog)

[ Back to top](https://developer.wordpress.org/reference/classes/wordpress-aiclient-common-abstractenum/determineclassenumerations/?output_format=md#wp--skip-link--target)

Determines the class enumerations by reflecting on class constants.

## 󠀁[Description](https://developer.wordpress.org/reference/classes/wordpress-aiclient-common-abstractenum/determineclassenumerations/?output_format=md#description)󠁿

This method can be overridden by subclasses to customize how enumerations are determined(
e.g., to add dynamic constants).

## 󠀁[Parameters](https://developer.wordpress.org/reference/classes/wordpress-aiclient-common-abstractenum/determineclassenumerations/?output_format=md#parameters)󠁿

 `$className`WordPressAiClientCommonclass-stringrequired

The fully qualified class name.

## 󠀁[Return](https://developer.wordpress.org/reference/classes/wordpress-aiclient-common-abstractenum/determineclassenumerations/?output_format=md#return)󠁿

 WordPressAiClientCommonarray<string, string> Map of constant names to values.

## 󠀁[Source](https://developer.wordpress.org/reference/classes/wordpress-aiclient-common-abstractenum/determineclassenumerations/?output_format=md#source)󠁿

    ```php
    protected static function determineClassEnumerations(string $className): array
    {
        $reflection = new ReflectionClass($className);
        $constants = $reflection->getConstants();
        // Validate all constants
        $enumConstants = [];
        foreach ($constants as $name => $value) {
            // Check if constant name follows uppercase snake_case pattern
            if (!preg_match('/^[A-Z][A-Z0-9_]*$/', $name)) {
                throw new RuntimeException(sprintf('Invalid enum constant name "%s" in %s. Constants must be UPPER_SNAKE_CASE.', $name, $className));
            }
            // Check if value is valid type
            if (!is_string($value)) {
                throw new RuntimeException(sprintf('Invalid enum value type for constant %s::%s. ' . 'Only string values are allowed, %s given.', $className, $name, gettype($value)));
            }
            $enumConstants[$name] = $value;
        }
        return $enumConstants;
    }
    ```

[View all references](https://developer.wordpress.org/reference/files/wp-includes/php-ai-client/src/common/abstractenum.php/)
[View on Trac](https://core.trac.wordpress.org/browser/tags/7.0/src/wp-includes/php-ai-client/src/Common/AbstractEnum.php#L250)
[View on GitHub](https://github.com/WordPress/wordpress-develop/blob/7.0/src/wp-includes/php-ai-client/src/Common/AbstractEnum.php#L250-L268)

## 󠀁[Related](https://developer.wordpress.org/reference/classes/wordpress-aiclient-common-abstractenum/determineclassenumerations/?output_format=md#related)󠁿

| Used by | Description | 
| [OptionEnum::determineClassEnumerations()](https://developer.wordpress.org/reference/classes/wordpress-aiclient-providers-models-enums-optionenum/determineclassenumerations/)`wp-includes/php-ai-client/src/Providers/Models/Enums/OptionEnum.php` |

Determines the class enumerations by reflecting on class constants.

  |

## 󠀁[Changelog](https://developer.wordpress.org/reference/classes/wordpress-aiclient-common-abstractenum/determineclassenumerations/?output_format=md#changelog)󠁿

| Version | Description | 
| [0.1.0](https://developer.wordpress.org/reference/since/0.1.0/) | Introduced. |

## User Contributed Notes

You must [log in](https://login.wordpress.org/?redirect_to=https%3A%2F%2Fdeveloper.wordpress.org%2Freference%2Fclasses%2Fwordpress-aiclient-common-abstractenum%2Fdetermineclassenumerations%2F)
before being able to contribute a note or feedback.