The security problems of eval
-uating code with eval in PHP are the same as in Javascript : if you evaluate some code, you've got to be sure where it comes from, and what it contains.
The security implications might even be greater, as PHP has access to your database (amongst other things) -- which means it can be used to steal/corrupt almost avery informations your application relies on !
In Javascript, they say that "eval is evil" ; it's probably as true in PHP that it's true in Javascript.
Now, about specific situations in which you cannot avoid using eval
... Well, in something like 4 years of developping in PHP as my every-day job, I don't remember having ever used eval
in my own code ^^
Still, and example of situation where you need eval
would be when you are storing some code in database, for instance, and not caching it in files (which could be included) -- that happens with some CMS that allow portions of PHP code to be typed in the administration section, for instance.