Foros del Web » Programando para Internet » PHP » Frameworks y PHP orientado a objetos »

POO clases,subclases,polimorfismo y herencia

Estas en el tema de POO clases,subclases,polimorfismo y herencia en el foro de Frameworks y PHP orientado a objetos en Foros del Web. Estoy practicando con php, y tengo este ejemplo: Código PHP: <?php class  canimal {        function  canimal ( $patas ){  //Esto es una funcion constructora, se llama igual que la clase          $this -> patas = ...
  #1 (permalink)  
Antiguo 13/02/2013, 15:46
Avatar de andres_15_  
Fecha de Ingreso: septiembre-2008
Ubicación: Cali
Mensajes: 232
Antigüedad: 16 años, 2 meses
Puntos: 7
POO clases,subclases,polimorfismo y herencia

Estoy practicando con php, y tengo este ejemplo:

Código PHP:
<?php

class canimal{   

    function 
canimal($patas){ //Esto es una funcion constructora, se llama igual que la clase

        
$this->patas=$patas//esta diciendo que cuando llamemos patas se va a guardar en $patas
    
}

    
//var $ojos=2; //Una variable $ojos que tiene un valor de 2

    /*function patas(){ //La funcion Patas SIN  parametros
        return "Este animal tiene ".$this->patas. //el THIS llama o busca la la instanciacion que contiene patas
        " patas y ademas tiene ".$this->ojos." ojos <br>"; //devuelve este String
    }*/
    
function sonido(){
        echo 
"Este animal hace guau <br>";
    }

}

    class 
cperro extends canimal{} 
    
//Sub-clase de canimal HEREDA 
    
class cgato extends canimal{
        function 
sonido(){
            echo 
"En realidad hace miau ";
        }
    }
    
    
$fido=new cperro(); //se instancian las subclases
    
$mish=new cgato();

    echo 
$fido->sonido();
    echo 
$mish->sonido();

    
//$perro = new canimal(5); //se instancia una nueva variable en la clase Canimal
    //$gato = new canimal(8);
    //$gato->patas=3; //se dice que a la nueva instnacia se le agrega que patas vale 4
    //$perro->patas=4;
    //echo $gato->patas(); //se imprime la variable $gato y se llama la funcion sin parametros, ya que fueron asignados previamente
    //echo $perro->patas();



?>
cuando miro me sale este error:


Código:
Warning: Missing argument 1 for canimal::canimal(), called in C:\xampp\htdocs\POO\obejto.php on line 30 and defined in C:\xampp\htdocs\POO\obejto.php on line 5

Notice: Undefined variable: patas in C:\xampp\htdocs\POO\obejto.php on line 7

Warning: Missing argument 1 for canimal::canimal(), called in C:\xampp\htdocs\POO\obejto.php on line 31 and defined in C:\xampp\htdocs\POO\obejto.php on line 5

Notice: Undefined variable: patas in C:\xampp\htdocs\POO\obejto.php on line 7
Este animal hace guau
En realidad hace miau
Pero de todas maneras me imprime el resultado. Ya se me que me diran que es porque estoy definiendo $patas y que se encuentra como un comentario,ya lo se, pero porque en el vídeo que estoy viendo no le salen esos mensajes a el y a mi si, si tengo exactamente el mismo código.
  #2 (permalink)  
Antiguo 13/02/2013, 15:54
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 5 meses
Puntos: 2135
Respuesta: POO clases,subclases,polimorfismo y herencia

Seguramente no le salen porque esta usando una versión vieja de PHP, o no tiene activado el reporte de errores, ya que el código que expones es para PHP4, debes de actualizar un poco el tutorial que estés usando y adaptarte a las mejoras que tiene PHP5.

Saludos.
  #3 (permalink)  
Antiguo 14/02/2013, 21:17
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 13 años, 3 meses
Puntos: 793
Respuesta: POO clases,subclases,polimorfismo y herencia

Empieza por leer esto y ya sabrás si tu manual está actualizado o no.

http://www.php.net/manual/es/language.oop5.php

Así no pierdes tiempo, leyendo cosas viejas.

Saludos.
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP
  #4 (permalink)  
Antiguo 23/04/2013, 18:18
 
Fecha de Ingreso: febrero-2009
Ubicación: mexico
Mensajes: 148
Antigüedad: 15 años, 9 meses
Puntos: 1
Respuesta: POO clases,subclases,polimorfismo y herencia

el constructor se utiliza asi

Código PHP:
class animal(){
public function 
__construct(){
}

y no asi

Código PHP:
class animal(){
public function 
animal(){
}


Etiquetas: herencia, php, poo
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:48.