Ver Mensaje Individual
  #8 (permalink)  
Antiguo 30/04/2014, 14:09
Avatar de hhs
hhs
Colaborador
 
Fecha de Ingreso: junio-2013
Ubicación: México
Mensajes: 2.995
Antigüedad: 11 años, 4 meses
Puntos: 379
Respuesta: Objeto pho con Ajax/JQuery

Cita:
Iniciado por pateketrueke Ver Mensaje
Bueno, para mantener privadas dichas propiedades y a su vez obtener sus valores es tan fácil como construir el objeto/array a mano.

Código PHP:
Ver original
  1.   'foo' => $obj->getFoo(),
  2.   'bar' => $obj->getBar()
  3. ));

Usa tu ingenio.
El problema es que si agregas propiedades tienes que cambiar el json_enconde también. Lo que se puede hacer es que el objeto se encargue de devolver el arreglo por si mismo.
Para versiones menores a PHP 5.4 puedes hacer algo como lo siguiente:
Código PHP:
Ver original
  1. // No estan los métodos para simplificar
  2. class Empleado {
  3.     private $nrodoc = NULL;
  4.     private $nombre = NULL;
  5.     private $cuil = NULL;
  6.  
  7.     public function toArray(){
  8.         return get_object_vars($this);
  9.     }
  10.  
  11. }
  12.  
  13. $empleado = new Empleado();
  14. var_dump(json_encode($empleado->toArray()));

En version a partir de la 5.4 puedes implementar la interfaz JsonSerializable: http://www.php.net/manual/en/class.jsonserializable.php
Ejemplo:
Código PHP:
Ver original
  1. class Empleado implements JsonSerializable {
  2.     private $nrodoc = NULL;
  3.     private $nombre = NULL;
  4.     private $cuil = NULL;
  5.  
  6.     public function jsonSerialize()
  7.     {
  8.         return get_object_vars($this);
  9.     }
  10. }
  11.  
  12. // json_encode llama al metodo jsonSerialize
  13. $empleado = new Empleado();
  14. var_dump(json_encode($empleado));
__________________
Saludos
About me
Laraveles
A class should have only one reason to change.