• Viernes 16 de Noviembre de 2018, 18:49

Autor Tema:  Manejo de CLASS en php  (Leído 187 veces)

mcastro

  • Nuevo Miembro
  • *
  • Mensajes: 15
    • Ver Perfil
Manejo de CLASS en php
« en: Martes 6 de Noviembre de 2018, 21:07 »
0
Estoy aprendiendo a programar en PHP y considerando el tema de las CLASS; tengo el siguiente código:
<?php
     class Coche
     {
           protected $Modelo;
           protected $Color;
           protected $Velocidad;

           public function __construct($Modelo, $Color, $Velocidad = 0)
           {
                  $this->Modelo    = $Modelo;
                  $this->Color     = $Color;
                  $this->Velocidad = $Velocidad;
           }

           private function obtenerColor()
           {       return $this->Color;}

           private function cambiarColor()
           {       $this->Color = $Color;}

           private function Acelerar()
           {       $this->Velocidad++;}

           private function Frenar()
           {       $this->Velocidad--;}

           private function obtenerVelocidad()
           {       return $this->Velocidad;}

           public  function Datos()
           {
                   $Info = "<h1> Información acerca del coche </h1>";
                   $Info.= "Modelo: " . $this->Modelo;
                   $Info.= "<br/>Color: " . $this->obtenerColor();
                   $Info.= "<br/>Velocidad: " . $this->obtenerVelocidad();

                   return $Info;

           }
     }

     Estoy tratando de probarlo así:$Informacion = new Coche;
     $Informacion->Datos('Fiat', 'Rojo', 100).

     Me da error: Warning: Missing argument 1 for Coche::__construct(), called in C:\xampp\htdocs\Arreglos.php on line 42 and defined in C:\xampp\htdocs\Arreglos.php on line 8.

¿Me pueden ayudar?¿Qué estoy haciendo mal?

Gracias de antemano

Avalon

  • Miembro MUY activo
  • ***
  • Mensajes: 448
    • Ver Perfil
Re:Manejo de CLASS en php
« Respuesta #1 en: Miércoles 7 de Noviembre de 2018, 07:54 »
0
Hola,

Fíjate que lo que hace el método Datos es leer los atributos del coche. El método donde se hace la asignación de esos atributos es en el __construct, pero ahí no se los estás pasando (de ahí el warning).

Deberías hacerlo así:

Código: [Seleccionar]
$Informacion = new Coche('Fiat', 'Rojo', 100);
echo $Informacion->Datos();
« última modificación: Miércoles 7 de Noviembre de 2018, 07:56 por Avalon »

mcastro

  • Nuevo Miembro
  • *
  • Mensajes: 15
    • Ver Perfil
Re:Manejo de CLASS en php
« Respuesta #2 en: Miércoles 7 de Noviembre de 2018, 15:08 »
0
Gracias Avalon por tu respuesta. El que no sabe es como el que no ve. Déjame hacerlo y te comento. Saludos.