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
