Foros del Web » Programando para Internet » PHP » Frameworks y PHP orientado a objetos »

Seter en objetos

Estas en el tema de Seter en objetos en el foro de Frameworks y PHP orientado a objetos en Foros del Web. hola GatorV, espero te encuentres bien, te tengo una consulta amigo fijate estoy setando los atributos de una clase de la siguiente forma function getId_cliente(){ ...
  #1 (permalink)  
Antiguo 19/05/2010, 11:12
 
Fecha de Ingreso: septiembre-2007
Mensajes: 318
Antigüedad: 17 años, 2 meses
Puntos: 1
De acuerdo Seter en objetos

hola GatorV, espero te encuentres bien, te tengo una consulta amigo

fijate estoy setando los atributos de una clase de la siguiente forma

function getId_cliente(){
return $this->id_prospecto;
}
function getNombre(){
return $this->nombre;
}
function getApellido(){
return $this->apellido;
}

function buscarCliente(){
$obj_valida=new sQuery();
$result=$obj_valida->executeQuery("select * from prospectos where prospectos.nro_identificacion=$this->nro_identificacion");
$row = mysql_fetch_array($result);
$this->id_prospecto=$row['id_prospecto'];
$this->nombre=$row['nombre'];
$this->apellido=$row['apellido'];


luego tengo para mostrar lo siguiente:

$valido = new prospectos($_POST['nro_identificacion']);
echo "Codigo= ".$valido->getId_cliente()."<br>";
echo "Nombre= ".$valido->getNombre()."<br>";

mi pregunta es la siguiente, como puedo trabajar el resultado de la consulta como un arreglo para luego presentarlo, para no tener que estar creando tantos campos como quiera mostrar.

en programacion estructurada yo puedo recorrer el arreglo $row con un while eh imprimer los datos, pero como lo trato con poo?

gracias espero me alla explicado bien.
  #2 (permalink)  
Antiguo 19/05/2010, 11:40
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años, 5 meses
Puntos: 1517
Respuesta: Seter en objetos

Para retornar un arreglo solo tienes que ir añadiendo la información en arreglos y con return lo muestras algo así
Código PHP:
Ver original
  1. <?php
  2. class foo{
  3.     public function bar(){
  4.         $arr = array();
  5.         $n = 0;
  6.         //...
  7.         while($n < 10){
  8.             $arr[$n]['blaz'] = 'blaz' . $n;
  9.             $arr[$n]['candy'] = 'candy' . $n;
  10.             $n++;
  11.         }
  12.         return $arr;
  13.     }
  14. }
  15. $obj = new foo;
  16. var_dump($obj->bar());
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #3 (permalink)  
Antiguo 19/05/2010, 13:29
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 5 meses
Puntos: 2135
Respuesta: Seter en objetos

Siento que es de mala manera el dirigir el post a alguien.

Fuera de eso puedes aprovechar y usar method_exists para ir guardando los valores, por ejemplo:
Código PHP:
Ver original
  1. class Cliente
  2. {
  3.       private $_nombre;
  4.       private $_edad;
  5.  
  6.       public function setEdad($edad)
  7.       {
  8.              $this->_edad = $edad;
  9.              return $this;
  10.       }
  11.       public function getEdad()
  12.       {
  13.              return $this->_edad;
  14.       }
  15.  
  16.       public function setNombre($nombre)
  17.       {
  18.              $this->_nombre = $nombre;
  19.              return $this;
  20.       }
  21.       public function getNombre()
  22.       {
  23.              return $this->_nombre;
  24.       }
  25.  
  26.       public function fetchData($id)
  27.       {
  28.                $result = $this->db->fetch('SELECT nombre, edad FROM clientes WHERE id_cliente='.$id);
  29.                // suponiendo que db->fetch nos regresa un array asi:
  30.                // array( 'nombre' => 'fulano', 'edad' => 20)
  31.  
  32.                foreach ($result as $field => $value) {
  33.                        $method = 'set' . ucfirst($field);
  34.                        if (method_exists($this, $method) {
  35.                                 $this->$method($value);
  36.                        }
  37.                }
  38.       }
  39. }

Con eso ya podrías mandar llamar:
Código PHP:
Ver original
  1. $cliente = new Cliente();
  2. $cliente->fetchData(1);
  3. echo $cliente->getEdad();
  4. echo $cliente->getNombre();

Saludos.

Etiquetas: objetos
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 01:32.