elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Introducción a la Factorización De Semiprimos (RSA)


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  PHP (Moderador: #!drvy)
| | | |-+  [Resuelto] PHP toJSON a una clase que extiende de otra.
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: 1 [2] Ir Abajo Respuesta Imprimir
Autor Tema: [Resuelto] PHP toJSON a una clase que extiende de otra.  (Leído 4,156 veces)
MinusFour
Moderador Global
***
Desconectado Desconectado

Mensajes: 5.529


I'm fourth.


Ver Perfil WWW
Re: PHP toJSON a una clase que extiende de otra.
« Respuesta #10 en: 9 Septiembre 2015, 19:53 pm »

Hice lo que me dijiste

Código
  1. $properties = get_class_vars(get_class());

y puse en el constructor de persona

Código
  1. public function __construct() {
  2.      $this->idPersona = '';
  3.      $this->strNombres = '';
  4.      $this->strApellidoPaterno = '';
  5.      $this->strApellidoMaterno = '';
  6.      $this->strRut = '';
  7.      $this->strDv = '';
  8.      $this->Empresa = '';
  9.      $this->strImagenPersona = '';
  10.    }

Pero ahora solo me arroja el nombre de la clase sin las propiedades, y ojo que seteo las propiedades como corresponde, con los setter y todo lo que eso significa.



No necesitas usar get_class_vars una vez que moviste eso al constructor. Usas lo que hiciste al principio:

Código
  1. $properties = $this->getProperties();

Ahh y no me habia dado cuenta de otra cosa, las propiedades de la clase padre son private, es por eso que quizas no puedas verlas con get_class_vars.


« Última modificación: 9 Septiembre 2015, 20:02 pm por MinusFour » En línea

Pablo Videla


Desconectado Desconectado

Mensajes: 2.274



Ver Perfil WWW
Re: PHP toJSON a una clase que extiende de otra.
« Respuesta #11 en: 9 Septiembre 2015, 20:09 pm »

No necesitas usar get_class_vars una vez que moviste eso al constructor. Usas lo que hiciste al principio:

Código
  1. $properties = $this->getProperties();

Ahh y no me habia dado cuenta de otra cosa, las propiedades de la clase padre son private, es por eso que quizas no puedas verlas con get_class_vars.

Los atributos tienen que ser privados, para eso estan los getters. E hice lo que me dijiste en el constructor pero no tiene ningun efecto.



Encontre la solucion!  :D :D :D

Código
  1.        $properties = array_merge(parent::getProperties(),$this->getProperties());
  2.  


Mod: No hacer doble post


« Última modificación: 12 Septiembre 2015, 13:40 pm por #!drvy » En línea

MinusFour
Moderador Global
***
Desconectado Desconectado

Mensajes: 5.529


I'm fourth.


Ver Perfil WWW
Re: PHP toJSON a una clase que extiende de otra.
« Respuesta #12 en: 9 Septiembre 2015, 20:16 pm »

Si, una opción valida. Aunque sin duda pone en cuestión el uso de private en tu clase. A lo mejor con protected puedes obtener los valores de la clase padre con una sola llamada a get_object_vars.
En línea

Pablo Videla


Desconectado Desconectado

Mensajes: 2.274



Ver Perfil WWW
Re: PHP toJSON a una clase que extiende de otra.
« Respuesta #13 en: 9 Septiembre 2015, 20:19 pm »

Si, una opción valida. Aunque sin duda pone en cuestión el uso de private en tu clase. A lo mejor con protected puedes obtener los valores de la clase padre con una sola llamada a get_object_vars.
Buen punto, definitivamente deberìa ser protected los atributos de la clase padre. (Como dije al principio, php me ha hecho mal XD)



Perfecto MinusFour, con protected bastaba y sobraba pense al principio que querias que dejara como public los atributos por eso lo descarte altiro, pero con protected funciona perfecto. Algo basico en herencia y se me habia olvidado. Muchas gracias por la ayuda a todos!.

Mod: No hacer doble post
« Última modificación: 12 Septiembre 2015, 13:40 pm por #!drvy » En línea

Páginas: 1 [2] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines