访问一系列类的CONST属性

时间:2020-03-05 18:38:30  来源:igfitidea点击:

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

解决方案

回答

如果我们绝对需要访问这样的常量,则可以执行以下操作:

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

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

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

回答

我们无需在5.3之前的代码中使用eval就可以完成此操作。只需使用constant函数即可:

<?php

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

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

?>