Esempio:classe Accesso proprietà costante depressione non funziona
class LOL{
const
FOO = 1;
}
$x = new LOL;
$arr = array('x' => $x);
echo $x::FOO; // works
echo $arr['x']::FOO; // works too
Ma se faccio la mia istanza di una classe di una proprietà, non posso accedere al costante più:
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();
:(
So che posso fare solo echo LOL::FOO
, ma cosa succede se il nome della classe è sconosciuto? Da quella posizione ho solo accesso a quell'oggetto/proprietà, e davvero non voglio che la classe WWW sia "consapevole" di le sue classi e i loro nomi. Dovrebbe funzionare solo con l'oggetto dato
provare questo $ w = new WWW (nuovo LOL); ? – Gntem
Ma se il nome della classe non è noto, come puoi sapere che ha 'const FOO' per cominciare? (a meno che tutte le tue classi stiano implementando un'interfaccia o estendendo qualche classe) –
perché si aspetta che sia presente la costante: P – Alex