Check if a class constant exists

后端 未结 4 1449
醉梦人生
醉梦人生 2021-02-06 20:43

How can I check if a constant is defined in a PHP class?

class Foo {
    const BAR = 1;
}

Is there something like property_exists()

4条回答
  •  轮回少年
    2021-02-06 20:59

    You can use that function:

    function constant_exists($class, $name){
        if(is_string($class)){
            return defined("$class::$name");
        } else if(is_object($class)){
            return defined(get_class($class)."::$name");
        }
        return false;
    }
    

    Or alternative version using ReflectionClass

    function constant_exists($class, $name) {
        if(is_object($class) || is_string($class)){
            $reflect = new ReflectionClass($class);
            return array_key_exists($name, $reflect->getConstants());
        }
        return false;
    }
    

提交回复
热议问题