Title: ClassDiscovery::evaluateCondition
Published: May 20, 2026

---

# ClassDiscovery::evaluateCondition( $condition ): bool

## In this article

 * [Return](https://developer.wordpress.org/reference/classes/wordpress-aiclientdependencies-http-discovery-classdiscovery/evaluatecondition/?output_format=md#return)
 * [Source](https://developer.wordpress.org/reference/classes/wordpress-aiclientdependencies-http-discovery-classdiscovery/evaluatecondition/?output_format=md#source)
 * [Related](https://developer.wordpress.org/reference/classes/wordpress-aiclientdependencies-http-discovery-classdiscovery/evaluatecondition/?output_format=md#related)

[ Back to top](https://developer.wordpress.org/reference/classes/wordpress-aiclientdependencies-http-discovery-classdiscovery/evaluatecondition/?output_format=md#wp--skip-link--target)

Evaluates conditions to boolean.

## 󠀁[Return](https://developer.wordpress.org/reference/classes/wordpress-aiclientdependencies-http-discovery-classdiscovery/evaluatecondition/?output_format=md#return)󠁿

 bool

## 󠀁[Source](https://developer.wordpress.org/reference/classes/wordpress-aiclientdependencies-http-discovery-classdiscovery/evaluatecondition/?output_format=md#source)󠁿

    ```php
    protected static function evaluateCondition($condition)
    {
        if (is_string($condition)) {
            // Should be extended for functions, extensions???
            return self::safeClassExists($condition);
        }
        if (is_callable($condition)) {
            return (bool) $condition();
        }
        if (is_bool($condition)) {
            return $condition;
        }
        if (is_array($condition)) {
            foreach ($condition as $c) {
                if (\false === static::evaluateCondition($c)) {
                    // Immediately stop execution if the condition is false
                    return \false;
                }
            }
            return \true;
        }
        return \false;
    }
    ```

[View all references](https://developer.wordpress.org/reference/files/wp-includes/php-ai-client/third-party/http/discovery/classdiscovery.php/)
[View on Trac](https://core.trac.wordpress.org/browser/tags/7.0/src/wp-includes/php-ai-client/third-party/Http/Discovery/ClassDiscovery.php#L154)
[View on GitHub](https://github.com/WordPress/wordpress-develop/blob/7.0/src/wp-includes/php-ai-client/third-party/Http/Discovery/ClassDiscovery.php#L154-L176)

## 󠀁[Related](https://developer.wordpress.org/reference/classes/wordpress-aiclientdependencies-http-discovery-classdiscovery/evaluatecondition/?output_format=md#related)󠁿

| Uses | Description | 
| [ClassDiscovery::safeClassExists()](https://developer.wordpress.org/reference/classes/wordpress-aiclientdependencies-http-discovery-classdiscovery/safeclassexists/)`wp-includes/php-ai-client/third-party/Http/Discovery/ClassDiscovery.php` |

We need a “safe” version of PHP’s “class_exists” because Magento has a bug (or they call it a “feature”). Magento is throwing an exception if you do class_exists() on a class that ends with “Factory” and if that file does not exits.

  |

| Used by | Description | 
| [ClassDiscovery::findOneByType()](https://developer.wordpress.org/reference/classes/wordpress-aiclientdependencies-http-discovery-classdiscovery/findonebytype/)`wp-includes/php-ai-client/third-party/Http/Discovery/ClassDiscovery.php` |

Finds a class.

  | 
| [ClassDiscovery::getFromCache()](https://developer.wordpress.org/reference/classes/wordpress-aiclientdependencies-http-discovery-classdiscovery/getfromcache/)`wp-includes/php-ai-client/third-party/Http/Discovery/ClassDiscovery.php` |

Get a value from cache.

  |

## User Contributed Notes

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