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.