Cita:
Iniciado por hhs El problema esta en esta linea:
$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<meta http-equiv="Content-type" content="text/html; charset=utf-8"/>
<fieldset><center>
<?php
/** Clase Mulato extendida de persona
* Sin ningun metodo añadido
*/
class Mulato extends Persona
{
function __construct($Estatura = NULL, $Nombre = NULL,
$Apellido = NULL, $Fechanacimiento = NULL,
$Sexo = NULL, $Conocimiento = FALSE)
{
$this->_Estatura
=is_null($Estatura) ?
$this->_Estatura
:$Estatura; $this->_Nombre
=is_null($Nombre) ?
$this->_Nombre
:$Nombre; $this->_Apellido
=is_null($Apellido) ?
$this->_Apellido
:$Apellido; $this->_Fechanacimiento
=is_null($Fechanacimiento) ?
$this->_Fechanacimiento
:$Fechanacimiento; self::$_Sexo =is_null($Sexo) ?
$this->_Sexo
:$Sexo; $this->_Conocimiento =$Conocimiento;
}
//Función de Estatura para mulato
public function getEstaturaMul()
{
return $this->_Estatura;
}
//Función para Sexo mulato
public function getSexoMul()
{
return self::$_Sexo;
}
//FUncion para conocimiento mulato
public function getConocimientoMul()
{
if ($this->_Conocimiento)
{
return "Su hoja de vida ah sido registrada gracias por preferirnos.";
}
else
{
return "Lo sentimos su hoja de vida no ah sido registrada por que no cumple con los requisitos.";
}
}
}
//Clase persona
class Persona
{
private $_Estatura = 1.34;
public $_Nombre = "Pedro";
public $_Apellido = "Gomez";
public $_Fechanacimiento = "04/06/1996";
static $_Sexo = "Masculino";
protected $_Conocimiento = TRUE;
public function __construct($Estatura = NULL, $Nombre = NULL,
$Apellido = NULL, $Fechanacimiento = NULL,
$Sexo = NULL, $Conocimiento = FALSE)
{
$this->_Estatura
=is_null($Estatura) ?
$this->_Estatura
:$Estatura; $this->_Nombre
=is_null($Nombre) ?
$this->_Nombre
:$Nombre; $this->_Apellido
=is_null($Apellido) ?
$this->_Apellido
:$Apellido; $this->_Fechanacimiento
=is_null($Fechanacimiento) ?
$this->_Fechanacimiento
:$Fechanacimiento; self::$_Sexo =is_null($Sexo) ?
$this->_Sexo
:$Sexo; $this->_Conocimiento =$Conocimiento;
}
//Funcion para retornar estatura por que el metodo es "private"
public function getEstatura()
{
return $this->_Estatura;
}
//Funcion para retornar sexo por que el metodo es "Static"
public function getSexo()
{
return self::$_Sexo;
}
//Funcion para retornar conocimiento por que el metodo est protegido
public function getConocimiento()
{
if ($this->_Conocimiento){
return "Su hoja de vida ah sido registrada gracias por preferirnos.";
}
else
{
return "Lo sentimos su hoja de vida no ah sido registrada por que no cumple con los requisitos.";
}
}
//Destructor de los metodos
public function __destruct()
{
unset($this->_Fechanacimiento
); unset($this->_Conocimiento
);
}
}
//instanciar objetos
$Persona = new Persona(1.69,"Juan Diego","Alfonso","04/08/1995","masculino", TRUE);
$Mulato = new Mulato (1.78,"Pedro","Aponte","06/12/1997","masculino", FALSE);
//Actividad HTML Persona
echo "Buen día señor(a) ".$Persona->_Nombre." ".$Persona->_Apellido.
" usted nació el ".$Persona->_Fechanacimiento." mide ".$Persona->getEstatura().
" y su sexo es ".$Persona->getSexo()."<br>";
echo $Persona->getConocimiento()."<br>";
?></center></fieldset>
<fieldset><center><?php
//Actividad HTML Mulato
echo "Buen día señor(a) ".$Mulato->_Nombre." ".$Mulato->_Apellido.
" usted nació el ".$Mulato->_Fechanacimiento." mide ".$Mulato->getEstaturaMul().
" y su sexo es ".$Mulato->getSexoMul()."<br>";
echo $Mulato->getConocimientoMul()."<br>";
?></center></fieldset>