Ver Mensaje Individual
  #5 (permalink)  
Antiguo 24/01/2007, 07:09
Tukzone
 
Fecha de Ingreso: febrero-2001
Mensajes: 1.374
Antigüedad: 23 años, 3 meses
Puntos: 11
Re: Sobreescribir Metodo

Pase a ver el tema de las frameworks y ya que estoy por aca te doy mi punto de vista sobre lo que planteas:

La clase esta mal estructurada, fijate como la cambie. Ahora son dos clases, Personas y Persona. No podes incluir los metodos generales de Personas en cada instancia creada del objeto Persona, por lo tanto ahora nos referimos a Personas y Persona.


Código PHP:
 // Obtener el registro de una persona cuyo id es 12
$objPersona Personas::buscar(12);

// Mostrar datos de la persona en pantalla
print 'Nombre    :' $objPersona->getNombre();
print 
'Appelido  :' $objPersona->getApellido();
print 
'Color     :' $objPersona->getColor();

// Duplicar registro
Personas::guardar($objPersona->getNombre(),
                  
$objPersona->getApellido(),
                  
$objPersona->getColor());
                  
// Crear un nuevo registro y mostrar resultado
print Personas::guardar('Fede''Lalala''negro');
 
 class 
Personas
 
{
    public function 
buscar($personaId)
    {        
        
$sql "SELECT * FROM persons where id=".$personaId;
        
$sqlmysql_query($sql);
        
        if (
mysql_num_fields($sql)!="0")
        {
            list(
$id$nombre$apellido$color) = mysql_fetch_array($sql);
            return new 
Persona($id$nombre$apellido$color);
        }
        
        return 
false;
    }
    
    public function 
guardar($personaNombre$personaApellido$personaColor)
    {
        
$sql "INSERT INTO persons SET nombre='".$personaNombre."', apellido= '".$personaApellido."', favorite_color= '".$personaColor."'";
        if (
mysql_query($sql))
        {
            return 
"Registro Guardado";
        }
        else
        {
            return 
"Ha Ocurrido un Error";
        }
    }
 } 
 
 class 
Persona 
 
{

    protected 
$nombre;
    protected 
$apellido;
    protected 
$color;
    protected 
$id;

    public function 
__construct($id$nombre$apellido$color)
    {
        
$this->setId($id);
        
$this->setNombre($nombre);
        
$this->setApellido($apellido);
        
$this->setColor($color);
    }

    public function 
getId() 
    {
        return 
$this->id;
    }
    
    public function 
setId($id)
    {
        
$this->id $id;
    }
    
    public function 
getNombre() 
    {
        return 
$this->nombre;
    }
    
    public function 
setNombre($nombre)
    {
        
$this->nombre $nombre;
    }
    
    public function 
getApellido()
    {    
        return 
$this->apellido;
    }
    
    public function 
setApellido($apellido)
    {
        
$this->apellido $apellido;
    }
    
    public function 
getColor()
    {    
        return 
$this->color;
    }
    
    public function 
setColor($color)
    {
        
$this->color $color;
    }