Ver Mensaje Individual
  #2 (permalink)  
Antiguo 29/12/2005, 14:33
Casuis
 
Fecha de Ingreso: septiembre-2005
Mensajes: 142
Antigüedad: 18 años, 8 meses
Puntos: 3
Duda con Visibilidad de Atributos

Buenas shinblood, primero darte la bienvenida al mundillo de PHP5 ya era hora q encontrara a alguien q programara en la versión 5. En fin vamos al lío. El problemilla que tienes es bastante facilillo de resolver lo que pasa es que puede ser enreversado si acabas de entrar en los objetos. Primero te pongo el código correctamente y te explico los fallos que tenias.

Código PHP:
<?php
class persona{
 
protected 
$_nombre;
 
function 
__construct($nom){
$this->_nombre=$nom;
}
public function 
me_llamo(){
return 
$this->_nombre;
}
}
 
class 
alumno extends persona{
 
private 
$_grado;
 
function 
__construct($nom){
parent::__construct($nom);
if(
$nom=="Jorge")
$this->_grado="5A";
 
}
public function 
mi_grado(){
 
echo 
"Me llamo: "$this->_nombre." y estoy en ".$this->_grado;
 
}
}
 
$perso1 = new alumno("Jorge");
$perso1->mi_grado();
?>
Bien ahora ya ejecuta, cuando tu extiendes de una clase padre los atributos protected se heredan y son accesibles desde la clase hija solo tienes que acceder como con un atributo normal $this-><nombre_atributo>. Nada de parent::

En fin que sepas q tambíén puedes utilizar el metodo __toString() para mostrar una cadena por ejemplo añade este método mágico a tu metodo mi_grado.
Código PHP:
    public function __toString(){
        return 
"Me llamo: "$this->_nombre." y estoy en ".$this->_grado;
    } 
Y podrás mostrar el mismo mensaje solo con hacer un echo del objeto en question:

Código PHP:
echo $perso1

Última edición por Casuis; 29/12/2005 a las 14:48