访问另一个类成员中的一个类的常量成员

时间:2013-05-16 10:04:10

标签: php class static constants

我有以下课程:

class Mode{
    const Enabled = 1;
    const Disabled = 2;
    const Pending = 3;
}
class Product{
    public static $Modes = Mode;
}

我想从Product上静态访问来访问类Mode的常量。

if($product_mode == Product::$Modes::Pending){
    //do something
}

有没有办法做到这一点?

2 个答案:

答案 0 :(得分:0)

您可以这样做: -

if($product_mode == Mode::Pending){
    //do something
}

在Product类中,虽然我怀疑它是实现你想做的任何事情的最佳方式。

答案 1 :(得分:0)

我找到了办法:

class Base{
    static public function getC($const)
    {
        $const = explode('/', $const);
        if(count($const)!=2)
            return;
        $cls = new ReflectionClass($const[0]);
        $consts = $cls->getConstants();
        return $consts[$const[1]];
    }
}
class Mode{
    const Enabled = 1;
    const Disabled = 2;
    const Pending = 3;

}
class Product extends Base{

}

echo Product::getC('Mode/Pending');