Доступ к константам класса из экземпляра, хранящегося в другом классе

У меня есть определенный класс, который имеет несколько констант, определенных через `const FIRST = 'something';

Я создал экземпляр класса как $class = new MyClass()

то у меня есть другой класс, который принимает экземпляр MyClass как один из его конструкторов и сохраняет его как $this->model = $myClassInstance;

Это прекрасно работает.

Но мне интересно, как я могу получить доступ к константам из этого экземпляра?

Я попробовал case $this->model::STATE_PROCESSING но моя IDE подсказывает мне

Неправильный доступ к статическому члену класса.

и PHP говорит мне

неожиданный '::' (T_PAAMAYIM_NEKUDOTAYIM) в …

Я знаю, что могу делать MyClass::STATE_PROCESSING но мне интересно, есть ли способ получить их на основе экземпляра?

Кажется, что вы на старой версии php? PHP 5.3 позволяет получить доступ к константам в соответствии с описанным вами способом … Тем не менее, так вы можете это сделать без этой неотъемлемой способности:

 class ThisClass { const FIRST = 'hey'; public function getFIRST() { return self::FIRST; } } class ThatClass { private $model; public function setModel(ThisClass $model) { $this->model = $model; } public function getModel() { return $this->model; } public function Hailwood() { $test = $this->model; return $test::FIRST; } } $Class = new ThisClass(); echo $Class->getFIRST(); //returns: hey echo $Class::FIRST; //returns: hey; PHP >= 5.3 // Edit: Based on OP's comments $Class2 = new ThatClass(); $Class2->setModel($Class); echo $Class2->getModel()->getFIRST(); //returns: hey echo $Class2->Hailwood(); //returns: hey 

В основном, создавалась функция «getter» для доступа к константе. Точно так же вы можете получить доступ к частным переменным извне.

См. Документы констант класса ООП: http://php.net/manual/en/language.oop5.constants.php