Resulta que estoy haciendo un ejercicio de clases y de repente cuando voy en el ejemplo sobre un método "static" comienzan los problemas, primero, mi código es el siguiente.
(Son dos problemas los comento abajo del código).
Código PHP:
Ver original
<?php class Mulato extends Persona { public function getExtNombre() { return parent::getConocimiento(); } } 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->_Conocimiento =$Conocimiento; } public function getEstatura() { return $this->_Estatura; } public function getSexo() { return self::$_Sexo; } public function getConocimiento() { if ($this->_Conocimiento){ echo "Su hoja de vida ah sido registrada gracias por preferirnos."; }else{ echo "Lo sentimos su hoja de vida no ah sido registrada por que no cumple con los requisitos."; } } public function __destruct() { } } $Persona=new Persona(1.69,"Juan Diego","Alfonso","04/08/1995","masculino", TRUE); //$Mulato =new Mulato(); 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(); ?>
Ahora les comento, mi primer problema es que el tutorial y las personas que me dicen que realice este método escriben en el constructor lo siguiente para que no cambie.
Código PHP:
Ver original
$this->_Sexo =$Sexo;
Ahora a lo que yo voy es que a mí me toca con "selft", si lo escribo como dice arriba me da un error (Accessing static property Persona::$_Sexo as non static), ¿que puedo hacer para arreglar esto?.
Ahora el segundo error es que si quiero hacer una clase extendida de persona ejemplo una clase mulato, me van a salir también dos errorres con relación al "self", como pueden ver el código arriba la instancia de la clase extendida está comentada debido al error.
Error1: "Accessing static property Mulato::$_Sexo as non static"
Error2: "Undefined property: Mulato::$_Sexo"
PD: el codigo tal como esta escrito arriba sirve pero en el caso que quite el comentario o cambie el "self" por "this->" me dan los errores.
Gracias.