Programación orientada a objetos en PHP

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.

Compartir

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *