The New Cult of Dead Cow

April 2, 2007






Propiedades en PHP5

Filed under: Programacion, PHP, Web

Ya antes mencione como utilizar las propiedades en php5.

Ahora, jugando un poco con el codigo, descubri una nueva forma, un tanto mas ordenada, de codificarlas.

Tenemos nuestra clase

class MyClass
{

}

Para poder usar las propiedades necesitamos definir la funcion especial __get

public funcion __get($attr)
{

}


Como vimos antes, lo usual es poner un bloque switch dentro de la funcion __get y compararlo con cada valor de attr y dar la respuesta en funcion de eso.  Sin embargo si queremos podemos definir cada propiedad existente en nuestra clase en su propia funcion de la siguiente manera:

private function __get_Estado()
{
    return “holas”;
}

Aca, estamos definiendo la propiedad Estado, la cual me devuelve la cadena “holas”. Como se puede ver se ha definido como privada, asi no se puede llamar a esta funcion desde el exterior. Y ahora para hacer que cuando se utilice el attributo se ejecute la funcion ponemos el siguiente codigo en la funcion __get

public function __get($attr)
{
    $functionName = “__get_”.$attr;
    return $this->$functionName();

}

Al final, asi quedaria nuestra clase:

class Departamento
{
 
    public function __get($attr)
    {
        $functionName  = “get”.$attr;
        return $this->$functionName();
    }

    private function getEstado()
    {
        return “holas”;
    }

}

Si queremos, podemos probar la clase

$a = new Departamento();

echo “#”.$a->Estado.”#”;


Y nos devolvera

#Holas#


Bueno espero, les haya servido ;)

Technorati Tags: , , , , ,

1 Comment »

The URI to TrackBack this entry is: http://necudeco.blogsome.com/2007/04/02/propiedades-en-php5-2/trackback/

  1. en www.configbox.com puedes elegir tu hosting entre php4 y php5 . Es un buen lugar para empezar a probar. Dan 10 días de prueba

    Comment by solaris — September 17, 2007 @ 2:39 pm

RSS feed for comments on this post.

Leave a comment

Line and paragraph breaks automatic, e-mail address never displayed, HTML allowed: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <code> <em> <i> <strike> <strong>























Get free blog up and running in minutes with Blogsome
Theme designed by B A Khan