POO: As propiedades dunha clase
PHP No Comments »As propiedades dunha clase gardan o estado e as características do obxeto. En realidade son variables que gardan valores: e poden ser públicas, protexidas ou privadas, estáticas ou dinámicas e incluso constantes.
Para definir unha propiedade o primeiro que hai que indicar será a súa visibilidade (public, protected ou private), e no caso de que non se indique entenderase que é publica (public). Definir unha propiedade como pública significa que é visible dende fora da propia clase, é dicir, que cando instanciemos un obxeto, podemos acceder directamente a esa propiedade. Se se define como protexida (protected), esa propiedade é accesible só dende dentro da propia clase, e dende outras clases que herden, é dicir, non podemos acceder directamente a esa propiedade cando instanciemos un obxeto, pero si poden acceder métodos dese obxeto ou doutros obxetos que sexan de clases que herdaron da anterior.
Despois da visibilidade vai se a propiedade é estática ou non (que se define coa palabra reservada static no caso de que sexa estática e sen poñer nada noutro caso). Que sexa estática significa que comparte valor para todos os obxetos desa clase, é dicir, que se se modifica o seu valor nun obxeto instancia desa clase, modificase o seu valor nos outros obxetos instancia desa mesma clase.
Despois de se é estática ou non, vai o nome da propiedade, que se define coas mesmas regras que as de definición das variables.
E opcionalmente, por último, se ten asignado un valor inicial, asígnaselle, co operador de asignación igual seguido do valor. Recordar que só se poden asignar valores constantes (de tipos escalares ou arrays) á propiedades na súa definición. Non se poden asignar nin variables, nin métodos de clases, nin funcións.
class unhaClase {
public $propiedade1 ;
protected static $propiedade2;
private $propiedade3 = 5;
public $propiedade4 = "cadea";
protected $propiedade5 = TRUE;
}
Coas propiedades non se pode empregar o modificar final (so se pode empregar con métodos e clases).