Ver Mensaje Individual
  #1 (permalink)  
Antiguo 02/02/2008, 16:22
micayael
 
Fecha de Ingreso: noviembre-2003
Ubicación: Paraguay
Mensajes: 382
Antigüedad: 21 años, 1 mes
Puntos: 4
Mensaje Object to Array

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?