请参阅:
$class_members = get_class_vars(__CLASS__);
foreach($class_members as $key => $value)
{
if (strpos($key, '_output') === 0)
{
// I want to eval() this
$code = '$this->' . $key . ' = 0;';
}
}
假设我想将值0
分配给以_output
开头的所有班级成员。我打算使用eval
。 好主意还是坏主意?
答案 0 :(得分:14)
您不需要eval()
。您可以使用$this->{$key}
中的变量:
foreach($class_members as $key => $value)
{
if (strpos($key, '_output') === 0)
{
// Look mom, no eval()!
$this->{$key} = 0;
}
}
答案 1 :(得分:13)
你可以这样做:
$this->{$key} = 0;
只有少数情况eval
不被视为evil
。
这不是其中之一:)