Пример:
class LOL{
const
FOO = 1;
}
$x = new LOL;
$arr = array('x' => $x);
echo $x::FOO; // works
echo $arr['x']::FOO; // works too
Но если я сделаю свой экземпляр класса свойством, я больше не смогу получить доступ к константе:
class WWW{
protected $lol;
public function __construct($lol){
$this->lol= $lol;
}
public function doSMth(){
echo $this->lol::FOO; // fail. parse error.. wtf
}
}
$w = new WWW;
$w->doSMth();
:(
Я знаю, что могу просто сделать echo LOL::FOO
, но что, если имя класса неизвестно? С этой позиции у меня есть доступ только к этому объекту/свойству, и я действительно не хочу, чтобы этот класс WWW «знал» о других классах и их именах. Он должен просто работать с данным объектом