11

这就是我想要在 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。谁能想到一个简单的方法来模拟这种行为而不实例化类?

4

2 回答 2

10

您可以eval在不使用 5.3 之前的代码的情况下完成此操作。只需使用以下constant功能:

<?php

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

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

?>
于 2008-08-21T10:48:23.407 回答
-1

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

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

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

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

于 2008-08-07T23:21:44.877 回答