这就是我想要的方法,它可以在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。 任何人都可以想到一种简单的方法来模拟这种行为而无需实例化类吗?

===============>>#1 票数:10 已采纳

您可以在5.3之前的代码中不使用eval来完成此操作。 只需使用constant函数:

<?php

class MyClass
{
    const CONSTANT = 'Const var';
}

$classname = 'MyClass';
echo constant("$classname::CONSTANT");

?>

===============>>#2 票数:-1

如果你绝对需要访问这样的常量,你可以这样做:

<?php
class MyClass
{
        const CONSTANT = 'Const var';
}

$classname = 'MyClass';
echo eval( 'return '.$classname.'::CONSTANT;' );
?>

但是,如果我是你,我会尽量不使用eval。

  ask by Peter Coulton translate from so

未解决问题?本站智能推荐: