Daniel Segovia

Blog personal

Archive for the ‘propiedades’ tag

Propiedades estáticas

Hacer un comentario

Cómo ya hemos visto tenemos propiedades public, private y protected pero tenemos una más, las propiedades estáticas.
La palabra reservada para éstas es: static

Las propiedades o métodos de clases como estáticos los hacen accesibles sin necesidad de una instanciación de la clase, esto se hace con el nombre de la clase :: nombre_de_propiedad_o_metodo. Una propiedad declarada como static no puede ser accedida con un objeto de clase instanciado (pero si se puede con métodos estáticos).

El acceso a la propiedad static

<?php
class MiClase {
    static $miVariableEstatica = 0;
}
echo MiClase::$miVariableEstatica;
?>

El acceso a la propiedad static por medio de un método

<?php
class MiClase {
    static $miVariableEstatica = 0;
    function miMetodo(){
        print self::$miVariableEstatica;
    }
}
$obj = new MiClase();
$obj->miMetodo();
?>

Written by Daniel Segovia

abril 12th, 2011 at 5:35 pm

Propiedades public, private y protected

Hacer un comentario

Public son accesibles de cualquier lugar.

<?php
class miClase
{
    public $propiedad = 'Public';
 
    function getProperty(){
        return $this->propiedad;
    }
 
}
 
 
$ob = new miClase();
echo $ob->propiedad; // Funciona
echo $ob->getProperty(); // Funciona
?>

Protected son accesibles sólo de la clase donde fue declarada, por herencia y clases parent

<?php
class miClase
{
    protected $propiedad = 'protected';
 
    function getProperty(){
        return $this->propiedad;
    }
 
}
 
class miClase2 extends miClase
{
	function getProperty2(){
		return $this->propiedad;
	}
}
 
 
$ob = new miClase2();
echo $ob->propiedad; // ERROR
echo $ob->getProperty(); // Funciona
echo $ob->getProperty2(); // Funciona
?>

Private pueden accederse solamente desde la clase donde fueron definidas.

<?php
class miClase
{
    private $propiedad = 'protected';
 
    function getProperty(){
        return $this->propiedad;
    }
 
}
 
class miClase2 extends miClase
{
	function getProperty2(){
		return $this->propiedad;
	}
}
 
 
$ob = new miClase2();
echo $ob->propiedad; // ERROR
echo $ob->getProperty(); // Funciona
echo $ob->getProperty2(); // ERROR
 
?>