You set $value="estado" then used $name on the next line. I think you also need a ; inside the eval. This worked for me:
class test {
var $estado;
function test ($e) {
$this->estado = $e;
}
}
$rs[0] = new test ("AAA");
$rs[1] = new test ("BBB");
echo $rs[0]->estado . "<BR>";
$value="estado";
$obj_name="$"."rs[0]->".$value;
echo $obj_name . "<BR>";
$str="$"."buffer=$obj_name;";
echo $str . "<BR>";
eval($str);
echo $buffer . "<BR>";
///// output ////
AAA
$rs[0]->estado
$buffer=$rs[0]->estado;
AAA