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:
|
1 2 3 4 5 6 |
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.
|
1 2 3 4 5 6 7 8 9 10 11 |
class Persona { private $nombre; private $apellidos; private $edad; } ?> |
Para poder construir un objeto y pasarle parámetros, necesitamos definir un constructor.
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
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.
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
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:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
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:
|
1 2 3 4 5 6 7 |
$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:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 |
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