Saltar a contenido

Clases y Objetos

PHP sigue un paradigma de programación orientada a objetos (POO) basado en clases.

Una clase es una plantilla que define las propiedades y métodos para poder crear objetos. De esta manera, un objeto es una instancia de una clase.

Tanto las propiedades como los métodos se definen con una visibilidad (quién puede acceder a ellos):

  • Privado - private: solo puede acceder la propia clase.
  • Protegido - protected: solo puede acceder la propia clase o sus descendientes.
  • Público - public: puede acceder cualquier otra clase.

Para declarar una clase, se utiliza la palabra clave class seguida del nombre de la clase. Para instanciar un objeto a partir de la clase, se utiliza new:

ejemploclase.php
<?php
class NombreClase {
// propiedades
// y métodos
}

$ob = new NombreClase();

Clases con mayúscula

Todas las clases empiezan con letra mayúscula.

Una vez que hemos creado un objeto, se utiliza el operador -> para acceder a una propiedad o un método:

ejemploaccesopropiedad.php
$objeto->propiedad;
$objeto->método(parámetros);

Si desde dentro de la clase, queremos acceder a una propiedad o método de la misma clase, utilizaremos la referencia $this;

ejemplothis.php
$this->propiedad;
$this->método(parámetros);  

Así pues, como ejemplo, codificaríamos una persona en el fichero Persona.php como:

Persona.php
<?php
class Persona {
    private string $nombre;

    public function setNombre(string $nom) {
        $this->nombre=$nom;
    }

    public function imprimir(){
        echo $this->nombre;
        echo '<br>';
    }
}

$gines = new Persona(); // creamos un objeto
$gines->setNombre("Ginés López");
$gines->imprimir();

Aunque se pueden declarar varias clases en el mismo archivo, es una mala práctica. Así pues, cada archivo contendrá una sola clase, y se le dará el nombre de la clase.