这就是我想要的方法,它可以在PHP 5.3.0 +
中使用<?php
class MyClass
{
const CONSTANT = 'Const var';
}
$classname = 'MyClass';
echo $classname::CONSTANT; // As of PHP 5.3.0
?>
但是我只能使用PHP 5.2.6。任何人都可以想到一种简单的方法来模拟这种行为而无需实例化类吗?
答案 0 :(得分:10)
您可以在5.3之前的代码中使用eval
来完成此操作。只需使用constant
功能:
<?php
class MyClass
{
const CONSTANT = 'Const var';
}
$classname = 'MyClass';
echo constant("$classname::CONSTANT");
?>
答案 1 :(得分:-1)
如果你绝对需要访问这样的常量,你可以这样做:
<?php
class MyClass
{
const CONSTANT = 'Const var';
}
$classname = 'MyClass';
echo eval( 'return '.$classname.'::CONSTANT;' );
?>
但是,如果我是你,我会尽量不使用eval。