Видеть:
$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
.
И это не один из них 🙂