Ver Mensaje Individual
  #21 (permalink)  
Antiguo 09/02/2011, 19:42
GaDo
 
Fecha de Ingreso: enero-2007
Mensajes: 16
Antigüedad: 17 años, 3 meses
Puntos: 0
Respuesta: __get Y __set Necesito una pequeña guia

Cita:
Iniciado por dual3nigma Ver Mensaje
Hola GaDo! desde mi punto de vista, una de las ventajas de utilizar los métodos mágicos es que te da "extensibilidad" por ejemplo podrias tener algo asi:
Código PHP:
Ver original
  1. public function __set($nombre, $valor)
  2.     {
  3.         $func = "filtros_{$nombre}";
  4.         $this->_data[$nombre] = function_exists($func) ? $func($valor) : $valor;
  5. }
te fijas? cada vez que pongo una variable me fijo si existe una funcion por ejemplo filtro_website(), asi puedo tener un archivo separado (filtros.php por ejemplo) con todo el "post proccessing" y puedo ir agregando funciones conforme necesite sin necesidad de meterme mas con mi clase, el uso sería por ejemplo:

Código PHP:
Ver original
  1. $usuario->website = 'website.com';

y en mi function filtros_website() lo convertiria quizas a '<a href="http://website.com"'>website.com</a>

Que te parece? espero que te sirva de algo y gustas un ejemplo mas en forma te lo mando!
Saludos!
estimado.

Modifique un poco tu codigo para mostrarte como entendi __set.

Código:
class MiClase
{
    public function __set($nombre, $valor)
        {
        $this -> $nombre = "visita $valor";
        }
}

$usuario = new MiClase;

$usuario->website = 'website.com';

echo $usuario -> website;
Ya que se almacena en $usuario -> $nombre = "visita website.com" y al fin se ve una diferencia con todos los codigos anteriores. Ya que ellos, si les borro el __set, igual se ve la variable dada ("en este caso: website.com"). al fin veo un uso razonable para __set

Tienes un ejemplo parecido para poder ver bien el funcionamiento de get ?

Me agarre de tu ejemplo para clarificar tu pregunta.. Muchas gracias

--------------------------------------------

Y una reflexión. Si entra aca un usuario noob que ni siquiera sabe sumar variables deberian de ayudarlo con amabilidad. nada justifica el mal trato al que no sabe. Sino que hay que incentivarlo. Sobretodo con ese afan vengativo de decir "Lo dejo aca para que se rian de lo tonto que fuiste". Si pasa un año y alguien ve ese post ... o si yo lo veo quizas diga . "chuta que estaba perdido" porque no naci sabiendo PHP. Creo que deberian de entenderlo y no creerse seres superiores ni votar las frustraciones de la vida real con alguien que recien esta empezando.

Saludos


[code]