Cuncuerdo con @
patriciomase sobre que "eval is evil" el principal problema de usar eval son los programadores inexpertos. Tomemos de ejemplo la clase
Código PHP:
Ver original<?php
class miClase{
private $attr1;
private $attr2;
public function __construct(){
$instr1 = '$this->attr1 = 1;';
$instr2 = '$this->attr2 = 2;';
eval($instr1); //aquí hacer que $instr1 se "ejecute" de manera que: echo $this->attr1; //debería mostrar "1"
}
}
?>
Funciona, si. Es correcto? no. Por qué? porque no tiene sentido. Lo que quieres hacer es muy similar a esto (tomando el ejemplo de la clase):
Código PHP:
Ver original<?php
class miClase{
private $attr1;
private $attr2;
public function __construct($attr){
$this->setAttr($attr);
echo $this->attr1;
}
protected function setAttr($attrs){
foreach( $attrs as $key => $value ){
$this->$key = $value;
}
}
}
new miClase
( array('attr1'=>'Hola mundo') ); ?>
Cita:
Iniciado por DoHITB
Quiero probar lo del eval() por temas de ficheros y consultas externas.
Saludos.
Puedes dar un ejemplo REAL de lo que quieres hacer? ya que con los ejemplos que pones, nos hace pensar que no sabes realmente programar (con todo el respeto del mundo) y haces que no sepamos guiarte correctamente sobre lo que es mejor. Y si, el 99% de las cosas que normalmente la gente hace con eval se puede evitar
![Pensando](http://static.forosdelweb.com/fdwtheme/images/smilies/scratchchin.gif)
.
Saludos