我有以下课程:
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
}
有没有办法做到这一点?
答案 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');