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
:
<?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:
$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>';
}
}
$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.