CONST почти бесполезен в переполнении стека

Я прочитал, что я мог найти по этому вопросу, но я в значительной степени озадачен отсутствием альтернатив. Если у вас есть проект ООП в PHP, использование consts настолько уродливо, насколько это возможно. Вот проблема:

class Invisible {
CONST youCantSeeMe = "";
}

class Ugly {
$invisible;
static $invisible2;

function __construct() {
$this->$invisible = new Invisible();
self::$invisible2 = New Invisible();

$this->invisible::youCantSeeMe; (illegal, crashes project)
self::$invisible2::youCantSeeMe; (illegal, crashes project)
}

function uglyFunction() {
//this is the only, ugly way to do it
$invisible = $this->invisible;
$invisible::youCantSeeMe (this works)
}
}

Единственный другой способ, который я нашел, это сделать публичный доступ к каждому констату, который у вас есть (громоздкий, трата времени), или с помощью волшебного __get, используя класс отражения (дорого).

Должен ли быть лучший способ, чем эти варианты?

-3

Решение

Я считаю, что ваша жалоба действительно связана с неполная поддержка разыменования.

:: принимает только простые ссылочные переменные с левой стороны

Это исправлено в Единый переменный синтаксис RFC который реализован в PHP 7.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]