====== 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