Clases y objetos
PHP sigue un paradigma de programación orientada a objetos (POO) basada en clases.
Un clase es un plantilla que define las propiedades y métodos para poder crear objetos. De este manera, un objeto es una instancia de una clase.
Tanto las propiedades como los métodos se definen con una visibilidad (quien puede acceder)
- Privado -
private: Sólo puede acceder la propia clase. - Protegido -
protected: Sólo 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 seguido del nombre de la clase. Para instanciar un objeto a partir de la clase, se utiliza new:
<?php
class NombreClase {
// propiedades
// y métodos
}
$ob = new NombreClase();
Todas las clases se nombran utilizando CamelCase.
Cuando un proyecto crece, es normal modelar las clases mediante UML. La clases se representan mediante un cuadrado, separando el nombre, de las propiedades y los métodos:

Una vez que hemos creado un objeto, se utiliza el operador -> para acceder a una propiedad o un método:
$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;
$this->propiedad;
$this->método(parámetros);
Así pues, como ejemplo, codificaríamos una persona en el fichero Persona.php como:
<?php
class Persona {
private string $nombre;
public function setNombre(string $nom) {
$this->nombre=$nom;
}
public function imprimir(){
echo $this->nombre;
echo '<br>';
}
}
$bruno = new Persona(); // creamos un objeto
$bruno->setNombre("Bruno Díaz");
$bruno->imprimir();
Aunque se pueden declarar varias clases en el mismo archivo, es una mala práctica. Así pues, cada fichero contedrá una sola clase, y se nombrará con el nombre de la clase.