Доступ к атрибуту CONST ряда классов

Вот как я хотел сделать это, которое будет работать в 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. Может ли кто-нибудь придумать простой способ симулировать это поведение без создания экземпляра класса?

7.08.2008 22:58:42
2 ОТВЕТА
РЕШЕНИЕ

Вы можете сделать это без использования evalкода до 5.3. Просто используйте constantфункцию:

<?php

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

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

?>
10
8.10.2015 00:55:12

Если вам абсолютно необходим доступ к такой константе, вы можете сделать это:

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

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

Но на вашем месте я бы постарался не использовать eval.

-1
7.08.2008 23:21:44