2013-12-09 219 views
1

想我需要得到被动态地形成像如何调用在这种情况下

StaticClass::chatincon 

形成使用dyanmic部分$ AA

$aa = icon; 
echo StaticClass::chat{$aa}; // not working 

什么是正确的方法来最好值类常量的值不使用eval()//作为EVALř经受EVAL注射

回答

1
constant("StaticClass::chat$aa") 

http://php.net/constant

而且常量不是“调用”的,如果有的话,它们被“访问”。

+0

如何从它的eval目前存在的? 这是安全使用...像eval不推荐? –

+2

它通过名称显式查找常量。它不会盲目评估代码。 'constant'是给定一个字符串的函数,因为没有其他方法可以这样做。 'constant('exec(“rm -rf /”);')'不会做任何事情,但'eval('exec(“rm -rf /”);')'会。 – deceze

1

你错过了constant。语法是

constant (string $name) 

应该

constant('StaticClass::chat'. $aa) 
+0

没有“常量关键字”。 – deceze

+0

对不起,我编辑过,这是一个错字 –