-1

我有以下课程:

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
}

有没有办法做到这一点?

4

2 回答 2

0

你可以简单地做: -

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

在 Product 类中,尽管我怀疑它是实现您想要做的任何事情的最佳方式。

于 2013-05-16T10:22:13.660 回答
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');
于 2013-05-16T19:15:33.737 回答