Hola amigos.
Estoy tratando de crear una función que recibe un array de objetos y crea una tabla. Cada objeto sería una fila y paso tambien un segundo array con los nombres de las columnas. Suponiendo que es una tabla de personas y el objeto persona tiene las propiedades nombre y apellido entonces en el segundo parametro envio array('nombre', 'apellido').
La idea sería hacer un foreach($objectsArray as $object) para ir creando las filas pero al intentar hacer un eval('$object->getNombre()') por ejemplo me da un error eval'd.
La segunda opción que pense es convertir los objeto a array entonces tendrías esto
class Persona
{
public $nombre;
private $apellido;
function Persona()
{
$this->nombre = 'Juan';
$this->apellido = 'Perez';
}
public function getNombre()
{
return $this->nombre;
}
}
$p = new Persona();
print_r($p);
$array = (array) $p;
echo "<br>------------------------<br>";
print_r($array);
echo "<br>------------------------<br>";
echo "Nombre: " . $array['nombre'];
echo "<br>------------------------<br>";
echo "Apellido: " . $array['apellido'];
El resultado es esto
Persona Object ( [nombre] => Juan [apellido:private] => Perez )
------------------------
Array ( [nombre] => Juan [Personaapellido] => Perez )
------------------------
Nombre: Juan
------------------------
Apellido:
Note que el apellido no lo imprime por ser privado. Hay alguna forma de poder imprimirlo?