例:
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 クラスが他のクラスとその名前を「認識」したくありません。指定されたオブジェクトで動作するはずです