PHP 7: Empezando con clases y objetos

Objetos relacionadosA partir de ahora vamos a entrar en la programación orientada a objetos, POO para los amigos. En las técnicas de programación utilizar objetos es básico para poder hacer programas bien estructurados que se puedan reutilizar o  modificar.

En programación, una clase es un objeto, y un objeto es una clase. Éstas clases de PHP tienen unas variables y unos métodos o funciones.

Dicho ésto vamos al grano.

Una primera clase básica

A continuación tenemos un objeto, que es una clase de PHP. Éste objeto representa un avión que está en unas coordenadas, tiene un tipo de motor, cierta matrícula, y está en un estado determinado. Por ejemplo:

<?php

// se declara el objeto
class Avion {

    // variables
    public $x, $y, $z;
    private $tipoMotor;
    public $matricula;
    private $estado;

    // a partir de aquí estan las funciones
    // constructor de la clase
    function __construct() {
        $this->x = $this->y = $this->z = 0;
        $this->tipoMotor = 1;
        $this->matricula = "No definida";
        $this->estado = "No definido";
    }

    public function getTipo() {
        switch ($tipoMotor) {
            case 1: $descripcion = "Hélices";
                break;
            case 2: $descripcion = "Propulsión a chorro";
                break;
            default:
                $descripcion = "Tipo no encontrado";
        }
        return $descripcion;
    }

    public function getEstado() {
        return "El avión con matrícula >" . $this->matricula . "< está: " . $this->estado;
    }

    public function despegar() {
        $this->estado = "Volando";
    }

    public function aterrizar() {
        $this->estado = "Esperando";
    }

    public function setMatricula($m) {
        $this->matricula = $m;
    }

    // destructor de la clase
    function __destruct() {
        echo "El avión con matrícula >" . $this->matricula . "< se ha destruido.";
    }

}

// fin del objeto
// a partir de aquí éste código usa el objeto avión
$miavion = new Avion();
$miavion->setMatricula("ABC123");
$miavion->despegar();
dispose($miavion);
echo "Mi avión está en (" . $miavion->x . ", " . $miavion->y . ", " . $miavion->z . ")<br>";
echo $miavion->getEstado() . "<br>";

Para empezar los objetos se crean usando la palabra reservada class. Tenemos dos partes principales dentro de la clase. La primera parte donde se declaran las variables, y después las funciones para ejecutar los algoritmos de programación.

Tenemos $this, que es especial. ¡Ojo! ésta variable es muy importante. Representa la clase, se usa dentro de dicha clase, y con ella accederemos a las variables y funciones cuando desarrollemos dicha clase. Con el símbolo -> después del $this accederemos así: $this->variable

De igual manera con el objeto $miavion->nombreDeVariable o $miavion->nombreDeFuncion() fuera de la clase.

Los tipos básicos de variables y funciones son public y private. Los private, como su nombre indica, son privados y sólo se pueden usar dentro de la clase. Los públicos se pueden usar desde fuera. Si vemos abajo del todo en la línea 62 de código se usa $miavion->x porque x es una variable pública. No podremos por ejemplo acceder a la variable estado de la forma $miavion->estado porque es privada. Lo mismo pasa con la variable $tipoMotor, no podemos acceder directamente, por ello se declara la función getTipo() que lo hace por nosotros y nos dice el tipo de motor que tiene el avión.

Constructor y destructor de una clase

El resto de funciones no tiene misterio, salvo dos especiales, el constructor y destructor de la clase. Si ejecutamos el ejemplo nos mostrará lo siguiente:

Mi avión está en (0, 0, 0)
El avión con matrícula >ABC123< está: Volando
El avión con matrícula >ABC123< se ha destruido.

El constructor empieza en la línea 14 y el destructor en la 50. Éstas dos funciones se ejecutan automáticamente cuando se crea un objeto avión y cuando se destruye respectivamente. Se suelen usar para hacer tareas de inicialización en el caso del constructor o para terminar procesos con el destructor. En el ejemplo el constructor simplemente le da unos valores a las variables de la clase y el destructor simplemente muestra un mensaje. Al ejecutarlo el ejemplo podemos ver que cuando termina el código PHP se llama automáticamente al destructor.

Terminando

Hay otros tipos de variables y funciones. También se pueden crear varios constructores.  Y muchas otras cosas más. Para terminar con éste minitutorial para empezar con los objetos de PHP me remito una vez más a la documentación oficial: http://www.php.net/manual/es/language.oop5.php

Si te ha gustado, te ha parecido útil o quieres que siga escribiendo dale aquí abajo al +1, al me gusta, a compartir, etcétera.. también puede dejar un comentario 😉

Un saludo!

Compartir..

Dejar un comentario

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