PHP - ayuda con metodo get y set

   
Vista:

ayuda con metodo get y set

Publicado por henry  (1 intervención) el 16/09/2010 01:14:18
trato de entender como es que funcionan ese metodo get y set:
es decir entiendo que si hace una verificacion de propertyName en en propertyTable si esa propiedad no existe lanza un error, luego no entiendo pq verfica si el metodo existe en la clase y pq retorna a la funcion definida por el usuario, si alguien me peude indicar algun link o me peude explicar esto.

gracias

if(method_exists($this,'get'.$propertyName)){
return call_user_func(array($this,'get'.$propertyName));

function __get($propertyName) {
22 if(!array_key_exists($propertyName, $this->propertyTable)){
23 throw new Exception("Invalid Property ".$propertyName."..!");
24 }
25 if(method_exists($this,'get'.$propertyName)){
26 return call_user_func(array($this,'get'.$propertyName));
27 }
28 else{
29 return $this->data[$this->propertyTable[$propertyName]];
30 }
31 }
32
33 function __set($propertyName, $value) {
34 if(!array_key_exists($propertyName, $this->propertyTable)){
35 throw new Exception("Invalid Property".$propertyName."..!");
36 }
37 if(method_exists($this,'set'.$propertyName)){
38 return call_user_func(array($this,'set'.$propertyName),$value);
39 }
40 else{
41 //Si el valor de la propiedad ha cambiado realmente
42 //y no esta en la matriz changedProperties
43 //añadirlo
44 if($this->propertyTable[$propertyName]!= $value &&
45 !in_array($propertyName,$this->changedProperties)) {
46 $this->changedProperties[] = $propertyName;
47 }
48 //Establece ahora el nuevo valor
49 $this->data[$this->propertyTable[$propertyName]] = $value;
50 }
51 }
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder