Hola a todos, hoy os voy a explicar como funciona POO o programación orientada a objetos en PHP.
En PHP también tenemos la posibilidad de hacer programación orientada a objetos, que nos servirá para hacer clases.
Si conocéis otros lenguajes con POO, este tema os sonara.
Para crear una clase, haremos lo siguiente:
<?php class Persona { } ?>
Después, añadiremos los atributos, estos definirán que representa a una persona, en este caso. Una persona para nuestro caso, se definirá por un nombre, apellidos y edad.
<?php class Persona { private $nombre; private $apellidos; private $edad; } ?>
Para poder construir un objeto y pasarle parámetros, necesitamos definir un constructor.
<?php class Persona { private $nombre; private $apellidos; private $edad; function __construct($nombre, $apellidos, $edad) { $this->nombre = $nombre; $this->apellidos = $apellidos; $this->edad = $edad; } } ?>
Después , con todo esto podremos hacer funcionalidades o metodos, podremos hacerlo de esta forma.
<?php class Persona { private $nombre; private $apellidos; private $edad; function __construct($nombre, $apellidos, $edad) { $this->nombre = $nombre; $this->apellidos = $apellidos; $this->edad = $edad; } function mayorEdad(){ return $this->edad > 18; } function nombreCompleto(){ return $this->nombre . " " . $this->apellidos; } } ?>
También os recomiendo poner unos métodos especiales llamados get y set. Así seria:
<?php class Persona { private $nombre; private $apellidos; private $edad; function __construct($nombre, $apellidos, $edad) { $this->nombre = $nombre; $this->apellidos = $apellidos; $this->edad = $edad; } public function __get($property){ if(property_exists($this, $property)) { return $this->$property; } } public function __set($property, $value){ if(property_exists($this, $property)) { $this->$property = $value; } } function mayorEdad(){ return $this->edad > 18; } function nombreCompleto(){ return $this->nombre . " " . $this->apellidos; } } ?>
Para usar esta clase, lo haremos asi:
$persona = new Persona("Fernando", "Ureña Gómez", 29); if ($persona->mayorEdad()){ echo $persona->nombreCompleto() . " es mayor de edad"; }else{ echo $persona->nombreCompleto() . " no es mayor de edad"; }
Este es el resultado final:
Este es el ejemplo completo:
<?php class Persona { private $nombre; private $apellidos; private $edad; function __construct($nombre, $apellidos, $edad) { $this->nombre = $nombre; $this->apellidos = $apellidos; $this->edad = $edad; } public function __get($property){ if(property_exists($this, $property)) { return $this->$property; } } public function __set($property, $value){ if(property_exists($this, $property)) { $this->$property = $value; } } function mayorEdad(){ return $this->edad > 18; } function nombreCompleto(){ return $this->nombre . " " . $this->apellidos; } } $persona = new Persona("Fernando", "Ureña Gómez", 29); if ($persona->mayorEdad()){ echo $persona->nombreCompleto() . " es mayor de edad"; }else{ echo $persona->nombreCompleto() . " no es mayor de edad"; } ?>
Espero que os sea de ayuda. Si tenéis dudas, preguntad. Estamos para ayudarte.
Deja una respuesta