Видеть:
$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 . Хорошая или плохая идея?
Для этого вам не нужен eval() . Вы можете использовать переменную как в $this->{$key} :
foreach($class_members as $key => $value) { if (strpos($key, '_output') === 0) { // Look mom, no eval()! $this->{$key} = 0; } }
Вы можете просто сделать:
$this->{$key} = 0;
Есть только несколько ситуаций, когда eval не считается evil .
И это не один из них 🙂