我可以用PHP实现以下功能吗?
我现在使用的解决方案是通过eval()调用函数,代码如下:
$lstrClassName = 'Class';
$lstrMethodName = 'function';
$laParameters = array('foo' => 1, 'bar' => 2);
$this->$lstrClassName->$lstrMethodName($laParameters);
我现在使用的解决方案是通过eval()调用函数,代码如下:
eval('$this->'.$lstrClassName.'->'.$lstrMethodName.'($laParameters);');
我很想知道是否有更好的方法来解决这个问题。
谢谢!
eval()
不是一个好的选择。你几乎肯定不应该使用字符串eval()
,除非你确切地知道为什么要使用它,并且已经排除了所有更好的替代方案。但是有太多更好的替代方案……所以你可能不应该使用字符串eval()
。 - dreftymac