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

голоса
6

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

Задан 07/08/2008 в 23:58
источник пользователем
На других языках...                            


2 ответов

голоса
9

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

<?php

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

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

?>
Ответил 21/08/2008 в 11:48
источник пользователем

голоса
-1

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

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

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

Но, если я тебя, я бы не попробовать использовать Eval.

Ответил 08/08/2008 в 00:21
источник пользователем

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more