Foros del Web » Programando para Internet » PHP » Frameworks y PHP orientado a objetos »

[SOLUCIONADO] PHP OO Duda con herencia de propiedades.

Estas en el tema de Duda con herencia de propiedades. en el foro de Frameworks y PHP orientado a objetos en Foros del Web. Estoy empezando a ver POO y me he quedado con una duda que no logro resolver. Como se accede al valor de una propiedad heredada. ...
  #1 (permalink)  
Antiguo 07/05/2015, 11:12
 
Fecha de Ingreso: abril-2008
Mensajes: 9
Antigüedad: 15 años, 11 meses
Puntos: 0
Duda con herencia de propiedades.

Estoy empezando a ver POO y me he quedado con una duda que no logro resolver.

Como se accede al valor de una propiedad heredada.

A ver si con el ejemplo me explico mejor.

Código PHP:
class Persona {
    public static 
$nombre;
    protected 
$email;
    private 
$dni;
    
    public function 
__construct() {
        
self::$nombre "Paco";
        
$this->email "[email protected]";
        
$this->dni "00000023T";
    }
}
class 
Donante extends Persona {
    public 
$contacto;
    
    public function 
__construct() {
        
$this->donante $this->email#Pretendo recuperar el valor asignado en el metodo constructor de Persona.
    
}
}

$donante = new Donante;
echo 
$donante->contacto
Ya que todos los ejemplos que he visto hasta ahora pasan los valores con un método y no con una propiedad.

Gracias.
  #2 (permalink)  
Antiguo 07/05/2015, 11:23
Avatar de hhs
hhs
Colaborador
 
Fecha de Ingreso: junio-2013
Ubicación: México
Mensajes: 2.995
Antigüedad: 10 años, 9 meses
Puntos: 379
Respuesta: Duda con herencia de propiedades.

Espero que notes que $this->donante no lo tienes declarado en ningún lado. Por otro parte por que haces nuevamente la asignación del correo a una propiedad heredada ?
Creo que seria mejor si explicas que es lo que quieres lograr
__________________
Saludos
About me
Laraveles
A class should have only one reason to change.
  #3 (permalink)  
Antiguo 07/05/2015, 14:05
 
Fecha de Ingreso: abril-2008
Mensajes: 9
Antigüedad: 15 años, 11 meses
Puntos: 0
Respuesta: Duda con herencia de propiedades.

Ya he descubierto mi fallo.

No había declarado el objeto de Persona.

Código PHP:
class Persona {
    public static 
$nombre;
    protected 
$edad;
    
    
    public function 
__construct() {
        
self::$nombre "Paco";
        
$this->edad 23;
        
    }
}
class 
Donante extends Persona {
    public 
$mayor_de_edad;
    
    public function 
__construct() {
         if (
$this->edad 18){
            
$this->mayor_de_edad 'es mayor de edad';
         }else{
             
$this->mayor_de_edad 'no es mayor de edad';
         }
    }
}

$persona = new Persona;
$donante = new Donante;
echo 
Persona::$nombre ' ' $donante->mayor_de_edad
  #4 (permalink)  
Antiguo 07/05/2015, 14:23
Avatar de hhs
hhs
Colaborador
 
Fecha de Ingreso: junio-2013
Ubicación: México
Mensajes: 2.995
Antigüedad: 10 años, 9 meses
Puntos: 379
Respuesta: Duda con herencia de propiedades.

Si usas un constructor en la clase hija, requieres llamar de forma explicita el constructor del padre mediante
Código PHP:
Ver original
  1. parent::__construct()
También debes de tener cuidado con el uso de la variable estática, si creas dos objetos y luego accedes a la variable y le asignas un nuevo valor, cambiara el nombre de los dos objetos.
__________________
Saludos
About me
Laraveles
A class should have only one reason to change.

Etiquetas: herencia
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 05:35.