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

¿Como extraer el valor de una variable situada dentro de un método PHP?

Estas en el tema de ¿Como extraer el valor de una variable situada dentro de un método PHP? en el foro de Frameworks y PHP orientado a objetos en Foros del Web. Hola, pues quisiera saber como extraer el valor de una variable dentro de un método. Esto es lo que tengo... Código PHP: Class  Profile  { ...
  #1 (permalink)  
Antiguo 20/02/2012, 15:13
 
Fecha de Ingreso: febrero-2012
Mensajes: 11
Antigüedad: 12 años, 2 meses
Puntos: 0
¿Como extraer el valor de una variable situada dentro de un método PHP?

Hola, pues quisiera saber como extraer el valor de una variable dentro de un método.

Esto es lo que tengo...
Código PHP:
Class Profile {
public function 
Things($userid) {
$sql "SELECT * FROM usuarios WHERE id = $userid";
$res mysql_query($sql) or die(mysql_error());
$toarray mysql_fetch_array($res);
$nombre $toarray["name"];
}

Ahora bien, en otro archivo,, fuera del archivo de clases, como podría yo imprimir la variable $nombre?

Siento hacer este tipo de preguntas, pero ayer he comenzado con esto de PHP orientado a objetos.

Gracias y un saludo!
  #2 (permalink)  
Antiguo 20/02/2012, 15:18
Avatar de zarkiel  
Fecha de Ingreso: febrero-2012
Mensajes: 51
Antigüedad: 12 años, 2 meses
Puntos: 15
Respuesta: ¿Como extraer el valor de una variable situada dentro de un método PHP?

Podrias crear un atributo nombre.

Supongamos que este archivo se llama Profile.php
Código PHP:
Ver original
  1. Class Profile {
  2. public $nombre;
  3. public function Things($userid) {
  4. $sql = "SELECT * FROM usuarios WHERE id = $userid";
  5. $res = mysql_query($sql) or die(mysql_error());
  6. $toarray = mysql_fetch_array($res);
  7. $this->nombre = $toarray["name"];
  8. }
  9. }

Código PHP:
Ver original
  1. <?php
  2. require 'Profile.php';  // incluimos el archivo
  3. $id_usuario = 1;
  4. $profile = new Profile();
  5. $profile->Things($id_usuario); // enviamos el id del usuario
  6.  
  7. // luego obtienes el nombre
  8.  
  9. echo $profile->nombre;
  10. ?>
__________________
« Los deseos pueden hacerse realidad, pero no basta con esperar un milagro, el milagro lo hacemos nosotros... Aquí y ahora »
  #3 (permalink)  
Antiguo 20/02/2012, 15:22
Avatar de carlos_belisario
Colaborador
 
Fecha de Ingreso: abril-2010
Ubicación: Venezuela Maracay Aragua
Mensajes: 3.156
Antigüedad: 14 años
Puntos: 461
Respuesta: ¿Como extraer el valor de una variable situada dentro de un método PHP?

el manual es tu amigo conoce el return??
si tu haces esto
Código PHP:
Ver original
  1. public function Things($userid) {
  2.     $sql = "SELECT * FROM usuarios WHERE id = $userid";
  3.     $res = mysql_query($sql) or die(mysql_error());
  4.     $toarray = mysql_fetch_array($res);
  5.     $nombre = $toarray["name"];
  6.     return $nombre;
  7.  
  8. }
y haces
Código PHP:
Ver original
  1. $p = new Profile();
  2. echo $p->Things('id_user');
no te devuelve el nombre impreso??
prueba y nos comentas, saludos
__________________
aprende d tus errores e incrementa tu conocimientos
it's not a bug, it's an undocumented feature By @David
php the right way
  #4 (permalink)  
Antiguo 20/02/2012, 15:25
Avatar de portalmana  
Fecha de Ingreso: septiembre-2007
Ubicación: Montevideo-Uruguay
Mensajes: 633
Antigüedad: 16 años, 7 meses
Puntos: 80
Respuesta: ¿Como extraer el valor de una variable situada dentro de un método PHP?

Generalmente los metodos retornan un valor.

una posibilidad es
Código PHP:
Ver original
  1. Class Profile {
  2.     public function Things($userid)
  3.    {
  4.          $sql = "SELECT * FROM usuarios WHERE id = $userid";
  5.          $res = mysql_query($sql) or die(mysql_error());
  6.          $toarray = mysql_fetch_array($res);
  7.          $nombre = $toarray["name"];
  8.          return $nombre;
  9.     }
  10. }  
  11.  
  12. // en tu codigo
  13. $p = new Profile();
  14. $nombre = $p->Things($userid);
  15. // y en $p quedaria ese valor

La otra forma es cargarla en un atributo de clase como te dijo zarkiel y luego un metodo que te lo da...
Código PHP:
Ver original
  1. Class Profile {
  2.  
  3.    private $_nombre;
  4.  
  5.     public function Things($userid)
  6.    {
  7.          $sql = "SELECT * FROM usuarios WHERE id = $userid";
  8.          $res = mysql_query($sql) or die(mysql_error());
  9.          $toarray = mysql_fetch_array($res);
  10.          $this->nombre = $toarray["name"];
  11.          return $this->nombre ;
  12.     }
  13.  
  14.  
  15. // y luego el metodo
  16.      public function getNombre()
  17.     {
  18.           return $this->nombre;
  19.     }
  20.  
  21. }
  22.  
  23. // y con
  24. $p = new Profile();
  25. $p->Things($userid);
  26. echo $p->getNombre();

Saludos
__________________
"La imaginación es más importante que el conocimiento. El conocimiento es limitado, mientras que la imaginación no" -- A.Einstein
objetivophp.com,twitter.com/objetivophp
  #5 (permalink)  
Antiguo 20/02/2012, 15:30
 
Fecha de Ingreso: febrero-2012
Mensajes: 11
Antigüedad: 12 años, 2 meses
Puntos: 0
Respuesta: ¿Como extraer el valor de una variable situada dentro de un método PHP?

Gracias a todos por vuestro tiempo y ayuda, la verdad es que me ha funcionado con todo lo que me habeis explicado.
+1 Para todos!
Un saludo
  #6 (permalink)  
Antiguo 20/02/2012, 15:33
Avatar de carlos_belisario
Colaborador
 
Fecha de Ingreso: abril-2010
Ubicación: Venezuela Maracay Aragua
Mensajes: 3.156
Antigüedad: 14 años
Puntos: 461
Respuesta: ¿Como extraer el valor de una variable situada dentro de un método PHP?

Cita:
Iniciado por portalmana Ver Mensaje
Código PHP:
Ver original
  1. Class Profile {
  2.  
  3.    private $_nombre;
  4.  
  5.     public function Things($userid)
  6.    {
  7.          $sql = "SELECT * FROM usuarios WHERE id = $userid";
  8.          $res = mysql_query($sql) or die(mysql_error());
  9.          $toarray = mysql_fetch_array($res);
  10.          $this->nombre = $toarray["name"];
  11.          return $this->nombre ;
  12.     }
  13.  
  14.  
  15. // y luego el metodo
  16.      public function getNombre()
  17.     {
  18.           return $this->nombre;
  19.     }
  20.  
  21. }
  22.  
  23. // y con
  24. $p = new Profile();
  25. $p->Things($userid);
  26. echo $p->getNombre();

Saludos
amigo portalmana, creo que
Código PHP:
Ver original
  1. $p->Things($userid);
  2. echo $p->getNombre();
estas redundando ya que si el método Things retorna ya el nombre no es necesario llamar al getter, saludos
__________________
aprende d tus errores e incrementa tu conocimientos
it's not a bug, it's an undocumented feature By @David
php the right way
  #7 (permalink)  
Antiguo 20/02/2012, 15:34
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 12 años, 9 meses
Puntos: 793
Respuesta: ¿Como extraer el valor de una variable situada dentro de un método PHP?

Es bueno tener los atributos como private y se le pasó a portalmana, no necesitas retornar en el método Things ya que no tendría sentido el getter.

Código PHP:
Ver original
  1. <?php
  2.  
  3. class Profile
  4. {
  5.     private $_nombre;
  6.    
  7.     public function Things($userid) {
  8.         $sql = "SELECT * FROM usuarios WHERE id = $userid";
  9.         $res = mysql_query($sql) or die(mysql_error());
  10.         $toarray = mysql_fetch_array($res);
  11.         $this->_nombre = $toarray["name"];
  12.     }
  13.    
  14.     public function getNombre() {
  15.         return $this->_nombre;
  16.     }
  17. }
  18.  
  19. $p = new Profile();
  20. $p->Things($userid);
  21. echo $p->getNombre();

Eso no más, ojalá todos hicieran el esfuerzo de aprender POO.

Saludos.
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP
  #8 (permalink)  
Antiguo 20/02/2012, 15:45
 
Fecha de Ingreso: febrero-2012
Mensajes: 11
Antigüedad: 12 años, 2 meses
Puntos: 0
Respuesta: ¿Como extraer el valor de una variable situada dentro de un método PHP?

Siguiendo con el tema, ahora por ejemplo, quiero extraer mas de un solo valor, que como en el caso anterior fue "name"...

El codigo que tengo ahora es...
Código PHP:
//Archivo class.php

class Profile {
# Comenzamos con las cosas del perfil...
    
public $perName// Nombre del User...
    
public $perSurname// Apellido del user
    
public $perFoto// Avatar del user
    
public $perFull// Nombre y apellidos

    
public function SusCosas($PROFILEID) {
        
$sql mysql_query("SELECT * FROM users WHERE id = $PROFILEID") or die(mysql_error());
        
$things mysql_fetch_array($sql);
        
$this -> perName $things["name"];
        
$this -> perSurname $things["surname"];
        
$this -> perFoto $things["avatar"];
        
$this -> perFull $things["name"] . " " $things["surname"];
    }
}

//Archivo profile.php
$idperfil $_GET["id"];

// Invocamos la clase profile...
$perfil = new Profile($idperfil);
$perfil -> SusCosas($idperfil);
echo 
$perfil -> perName;
echo 
$perfil -> perSurname;
echo 
$perfil -> perFoto;
echo 
$perfil -> perFull
Quisiera saber si todo esto que he realizado se podría hacer mas eficiente de alguna otra manera.

Gracias y un saludo!
  #9 (permalink)  
Antiguo 20/02/2012, 15:56
Avatar de carlos_belisario
Colaborador
 
Fecha de Ingreso: abril-2010
Ubicación: Venezuela Maracay Aragua
Mensajes: 3.156
Antigüedad: 14 años
Puntos: 461
Respuesta: ¿Como extraer el valor de una variable situada dentro de un método PHP?

pues comienza por aca http://www.php.net/manual/es/language.oop5.php, recomendaciones las propiedades o atributos de las clases deben de ser privadas, para acceder a ellas puedes usar getter y setter, pero como te dije comienza por leer un poco la documentación
__________________
aprende d tus errores e incrementa tu conocimientos
it's not a bug, it's an undocumented feature By @David
php the right way
  #10 (permalink)  
Antiguo 20/02/2012, 16:42
Avatar de portalmana  
Fecha de Ingreso: septiembre-2007
Ubicación: Montevideo-Uruguay
Mensajes: 633
Antigüedad: 16 años, 7 meses
Puntos: 80
Respuesta: ¿Como extraer el valor de una variable situada dentro de un método PHP?

Si no es necesario llamar al getter pero es un ejemplo, aunque pueden existir ocasiones en que guardas un resultado en un atributo y luego se lo pides.

Saludos
__________________
"La imaginación es más importante que el conocimiento. El conocimiento es limitado, mientras que la imaginación no" -- A.Einstein
objetivophp.com,twitter.com/objetivophp

Etiquetas: class, objetos, php
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 12:20.