no entiendo para que si puedes hacer esto
Código PHP:
<?php
class miClase{
private $attr1;
private $attr2;
public __construct(){
$this.attr1=1;
$this.attr2=2;
echo($this.attr1); //debería mostrar "1"
}
}
?>
que alguien me corrija si me equivoco pero esto no es asi
Código PHP:
$pinfo = 'phpinfo()'; //declaraste como strimg phpinfo() y eso es lo que mostrará, solo un string
echo $pinfo;
por el contrario esto si ejecutará la funcion.
Código PHP:
<?
$pinfo ='phpinfo();'; //
eval($pinfo);
?>
Para hacer lo que quieres se requiereun eval y una correcta sintaxis
Código PHP:
<?php
class miClase{
private $attr1;
private $attr2;
public __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"
}
}
?>
Por razones de seguridad eval no se ocupa mucho a no ser que sepas lo que estas haciendo