====== Programación Orientada a Objetos en PHP ======
Visibilidad de propiedades y métodos:
class Persona {
// Visibilidad pública (visibilidad global)
public $propiedad1
// Visibilidad privada (solo dentro de la clase)
private $propiedad2
// Visibilidade protegida (solo subclases)
protected $propiedad3
}
===== Propiedades y métodos estáticos =====
Las propiedades y métodos estáticos se usan cuando no pertenecen a las clases, pero los incluimos porque tienen relación, como si fuese una forma de categorizarlos.
class Persona {
private $edad;
private $nombre;
public static $mayoria_edad = 18;
}
Cuando un método o propiedad es estática quiere decir que no necesitamos crear un objeto para acceder a él, utilizamos el nombre de la clase:
echo Persona::$mayoria_edad; // 18
Para hacer referencia a un método estático o propiedad estática, se utiliza un par de dos puntos (''::''), conocido como "operador de resolución de ámbito" (//scope resolution operator//). En PHP también se le conoce como //Paamayim Nekudotayim//, que significa doble dos-puntos en hebreo.
Lo mismo con los métodos:
class Persona {
(...)
public static function setMayoriaEdad($newMayoriaEdad) {
self::$mayoria_edad = $newMayoriaEdad;
}
Para referirnos a un método o propiedad de la clase, utilizamos la palabra reservada ''self'', como cuando usamos ''$this''.
Y lo usaríamos:
Persona::setMayoriaEdad(21);
echo $Persona::$mayoriaEdad; // 21