Ver Mensaje Individual
  #5 (permalink)  
Antiguo 20/05/2015, 11:10
juandhalcolo
 
Fecha de Ingreso: mayo-2015
Mensajes: 6
Antigüedad: 8 años, 11 meses
Puntos: 0
Respuesta: Problema con el método static

Cita:
Iniciado por hhs Ver Mensaje
El problema esta en esta linea:
Código PHP:
Ver original
  1. self::$_Sexo            =is_null($Sexo)             ?   $this->_Sexo            :$Sexo;
$this->_Sexo debe ser self::_Sexo
Por cierto los métodos deben de regresar "algo" cuando los invocas, así que cambia los echos que tienes en getConocimiento() por returns
La manera en la que lo estaba escribiendo estaba bien, si lo escribo como tu me dices da error, a excepción de los "return", esos si me ayudaron y ya los cambie, pero me puse a investigar y me hacia falta código para la clase extendida de mulato.

Gracias a los que respondieron, a continuación dejo el código final, para los que estén interesados.


Código PHP:
Ver original
  1. <meta http-equiv="Content-type" content="text/html; charset=utf-8"/>
  2. <fieldset><center>
  3. <?php
  4.  
  5. /** Clase Mulato extendida de persona
  6. *   Sin ningun metodo añadido
  7. */
  8. class Mulato extends Persona
  9. {
  10.    
  11.     function __construct($Estatura = NULL, $Nombre = NULL,
  12.                         $Apellido = NULL, $Fechanacimiento = NULL,
  13.                         $Sexo = NULL, $Conocimiento = FALSE)
  14.     {
  15.         $this->_Estatura        =is_null($Estatura)         ?   $this->_Estatura        :$Estatura;
  16.         $this->_Nombre          =is_null($Nombre)           ?   $this->_Nombre          :$Nombre;
  17.         $this->_Apellido        =is_null($Apellido)         ?   $this->_Apellido        :$Apellido;
  18.         $this->_Fechanacimiento =is_null($Fechanacimiento)  ?   $this->_Fechanacimiento :$Fechanacimiento;
  19.         self::$_Sexo            =is_null($Sexo)             ?   $this->_Sexo            :$Sexo;
  20.         $this->_Conocimiento    =$Conocimiento;
  21.     }
  22.  
  23.     //Función de Estatura para mulato
  24.  
  25.     public function getEstaturaMul()
  26.     {
  27.         return $this->_Estatura;
  28.     }
  29.     //Función para Sexo mulato
  30.     public function getSexoMul()
  31.     {
  32.         return self::$_Sexo;
  33.     }
  34.     //FUncion para conocimiento mulato
  35.     public function getConocimientoMul()
  36.     {
  37.         if ($this->_Conocimiento)
  38.         {
  39.             return "Su hoja de vida ah sido registrada gracias por preferirnos.";
  40.         }
  41.         else
  42.         {
  43.             return "Lo sentimos su hoja de vida no ah sido registrada por que no cumple con los requisitos.";
  44.         }
  45.  
  46.     }
  47. }
  48.  
  49. //Clase persona
  50.  
  51. class Persona
  52. {
  53.     private     $_Estatura          = 1.34;
  54.     public      $_Nombre            = "Pedro";
  55.     public      $_Apellido          = "Gomez";
  56.     public      $_Fechanacimiento   = "04/06/1996";
  57.     static      $_Sexo              = "Masculino";
  58.     protected   $_Conocimiento      = TRUE;
  59.  
  60.  
  61.     public function __construct($Estatura = NULL, $Nombre = NULL,
  62.                                 $Apellido = NULL, $Fechanacimiento = NULL,
  63.                                 $Sexo = NULL, $Conocimiento = FALSE)
  64.     {
  65.         $this->_Estatura        =is_null($Estatura)         ?   $this->_Estatura        :$Estatura;
  66.         $this->_Nombre          =is_null($Nombre)           ?   $this->_Nombre          :$Nombre;
  67.         $this->_Apellido        =is_null($Apellido)         ?   $this->_Apellido        :$Apellido;
  68.         $this->_Fechanacimiento =is_null($Fechanacimiento)  ?   $this->_Fechanacimiento :$Fechanacimiento;
  69.         self::$_Sexo            =is_null($Sexo)             ?   $this->_Sexo            :$Sexo;
  70.         $this->_Conocimiento    =$Conocimiento;
  71.     }
  72.     //Funcion para retornar estatura por que el metodo es "private"
  73.     public function getEstatura()
  74.     {
  75.         return $this->_Estatura;
  76.     }
  77.     //Funcion para retornar sexo por que el metodo es "Static"
  78.     public function getSexo()
  79.     {
  80.         return self::$_Sexo;
  81.     }
  82.     //Funcion para retornar conocimiento por que el metodo est protegido
  83.     public function getConocimiento()
  84.     {
  85.         if ($this->_Conocimiento){
  86.             return "Su hoja de vida ah sido registrada gracias por preferirnos.";
  87.         }
  88.         else
  89.         {
  90.             return "Lo sentimos su hoja de vida no ah sido registrada por que no cumple con los requisitos.";
  91.         }
  92.     }
  93.     //Destructor de los metodos
  94.     public function __destruct()
  95.         {
  96.             unset($this->_Estatura);
  97.             unset($this->_Nombre);
  98.             unset($this->_Apellido);
  99.             unset($this->_Fechanacimiento);
  100.             unset($this->Sexo);
  101.             unset($this->_Conocimiento);
  102.            
  103.         }
  104. }
  105.  
  106. //instanciar objetos
  107. $Persona    =   new Persona(1.69,"Juan Diego","Alfonso","04/08/1995","masculino", TRUE);
  108. $Mulato     =   new Mulato  (1.78,"Pedro","Aponte","06/12/1997","masculino", FALSE);
  109.  
  110. //Actividad HTML Persona
  111. echo "Buen día señor(a) ".$Persona->_Nombre." ".$Persona->_Apellido.
  112.      " usted nació el ".$Persona->_Fechanacimiento." mide ".$Persona->getEstatura().
  113.      " y su sexo es ".$Persona->getSexo()."<br>";
  114. echo $Persona->getConocimiento()."<br>";
  115.  
  116.  
  117. ?></center></fieldset>
  118.  
  119.  
  120.  
  121.  
  122. <fieldset><center><?php
  123.  
  124. //Actividad HTML Mulato
  125. echo "Buen día señor(a) ".$Mulato->_Nombre." ".$Mulato->_Apellido.
  126.      " usted nació el ".$Mulato->_Fechanacimiento." mide ".$Mulato->getEstaturaMul().
  127.      " y su sexo es ".$Mulato->getSexoMul()."<br>";
  128. echo $Mulato->getConocimientoMul()."<br>";
  129.  
  130.  
  131.  
  132. ?></center></fieldset>