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

Obtener variables de una funcion

Estas en el tema de Obtener variables de una funcion en el foro de Frameworks y PHP orientado a objetos en Foros del Web. Hola a todos, necesito ayuda con para crear una funcion.. Básicamente necesito obtener los valores obtenidos dentro de una función... Lo que estoy tratando de ...
  #1 (permalink)  
Antiguo 21/01/2009, 12:20
Avatar de vITTY  
Fecha de Ingreso: enero-2006
Mensajes: 139
Antigüedad: 18 años, 2 meses
Puntos: 1
Obtener variables de una funcion

Hola a todos, necesito ayuda con para crear una funcion..

Básicamente necesito obtener los valores obtenidos dentro de una función...

Lo que estoy tratando de hacer es lo siguiente....

clase_ejemplo.php
Código PHP:
<?
class Usuario{
    private 
$db;
    private 
$query;
    public  
$Nombre;
        public  
$Apellido;
    
    public function 
__construct($db){
        
$this->db=$db;
    }
    
    public function 
setQuery($query){
        
$this->Query=$query;
    }


        public function 
ObtenerValores() {
        
            
$ejecuto=$this->db->ejecutarQuery($this->Query);
            while(
$row=mysql_fetch_array($ejecuto)){        

            
$this->Nombre=$row['Nombre'];
                        
$this->Apellido=$row['Apellido'];           
 
          }
}
?>

Luego para mostrarlo "intento" hacer esto...

index.php

Código PHP:
<?
    $db
=db::TraerBase();
    
$usuario=new Usuario($db);
    
    
$query="SELECT * FROM Usuarios where id = $idUsuario";
    
$usuario->setQuery($query);

    echo 
$usuario->Nombre;
        echo 
$usuario->Apellido;

?>
Mi pregunta es ... esto puede funcionar o lo tengo que pensar de otra forma?
  #2 (permalink)  
Antiguo 21/01/2009, 12:28
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: Obtener variables de una funcion

Mmm pues la falla evidente de que sobreescribes la variable en cada vuelta del while...

Por otro lado es mejor usar setters/getters para eso, (getNombre, getApellido / setNombre, setApellido).

Saludos
  #3 (permalink)  
Antiguo 21/01/2009, 12:46
Avatar de vITTY  
Fecha de Ingreso: enero-2006
Mensajes: 139
Antigüedad: 18 años, 2 meses
Puntos: 1
Respuesta: Obtener variables de una funcion

Gracias por la respuesta gator, si no fuera mucha molestia me podrías dar un ejemplo para mi caso... prometo grabar el método en mi cabeza :)

Estoy leyendo sobre guetters y setters pero no entiendo del todo el concepto.
  #4 (permalink)  
Antiguo 21/01/2009, 13:26
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: Obtener variables de una funcion

Pues es sencillo:
Código php:
Ver original
  1. class Foo {
  2.         private $_bar;
  3.  
  4.         public function setBar( $bar ) {
  5.                  $this->_bar = $bar;
  6.         }
  7.  
  8.         public function getBar() {
  9.                  return $this->_bar;
  10.         }
  11. }

Saludos
  #5 (permalink)  
Antiguo 22/01/2009, 11:16
Avatar de vITTY  
Fecha de Ingreso: enero-2006
Mensajes: 139
Antigüedad: 18 años, 2 meses
Puntos: 1
Respuesta: Obtener variables de una funcion

Si dentro del metodo ObtenerValores() le asigno la variable $nombre=$row['Nombre']; ya le asigna el valor a function setNombre($nombre)?

$usuario->nombre;

esa es mi duda...
  #6 (permalink)  
Antiguo 22/01/2009, 11:20
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: Obtener variables de una funcion

No entendí tu pregunta, tu desde dentro de la clase puedes modificar las variables a tu gusto, solamente al leerlas fuera de la clase es donde debes de usar los getters/setters.

Saludos.
  #7 (permalink)  
Antiguo 22/01/2009, 11:20
okram
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Obtener variables de una funcion

Los setters y getters son para escribir y obtener el valor de una propiedad de tu clase a la que no podemos acceder directamente (propiedades privadas). Si en el proceso de tu clase ya defines el valor de alguna propiedad, no es necesario definir un setter, a menos que realmente lo vayas a necesitar (como por ejemplo, que tengas que modificar su valor independientemente de cualquier proceso). Igual con los getter. No tiene sentido crear uno si la propiedad a la que hace referencia es usada sólo en el ámbito interno de la clase (y se accedería usando $this->propiedad)

  #8 (permalink)  
Antiguo 29/01/2009, 13:18
 
Fecha de Ingreso: agosto-2008
Mensajes: 271
Antigüedad: 15 años, 8 meses
Puntos: 2
Respuesta: Obtener variables de una funcion

Código:
        public function ObtenerValores() {
        
            $ejecuto=$this->db->ejecutarQuery($this->Query);
            while($row=mysql_fetch_array($ejecuto)){        

            $this->Nombre=$row['Nombre'];
                        $this->Apellido=$row['Apellido'];           
 
          }
Dentro de esta funcion podrias utilizar un arreglo y la instruccion return para no sobreescribir la variable en cada vuelta del ciclo, con lo que quedaria asi.

Código:
        public function ObtenerValores() {
        
            $ejecuto=$this->db->ejecutarQuery($this->Query);

            while($row=mysql_fetch_assoc($ejecuto)){        

            $this->recordset[]=$row;
            }
   return $this->recordset;

          }
Luego solo seria leer ese arreglo con un ciclo iterativo.
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 21:08.