Сведения о вопросе

SOON

16:03, 1st July, 2020

Теги

php   oop    

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

Просмотров: 475   Ответов: 2

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



  Сведения об ответе

piter

18:03, 1st July, 2020

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

<?php

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

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

?>


  Сведения об ответе

P_S_S

18:03, 1st July, 2020

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

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

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

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


Ответить на вопрос

Чтобы ответить на вопрос вам нужно войти в систему или зарегистрироваться