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

Pasar variables de funciones

Estas en el tema de Pasar variables de funciones en el foro de Frameworks y PHP orientado a objetos en Foros del Web. Hola jugando con PHP me tuve esta duda si mi script es Código PHP: <?php  class  Algo { function  hola () {           $hola   ...
  #1 (permalink)  
Antiguo 02/02/2012, 00:46
 
Fecha de Ingreso: noviembre-2011
Mensajes: 19
Antigüedad: 12 años, 5 meses
Puntos: 2
Pasar variables de funciones

Hola jugando con PHP me tuve esta duda

si mi script es

Código PHP:
<?php 

class Algo{

function 
hola()
{
   
     
$hola  'Hola mundo'///Quiero pasar esta variable a otro metodo


}
function 
adios()
{
     
$variable $this->hola($hola);
     echo 
$variable;
}

}
?>
Me pueden ayudar si esto es posible y como?... estoy haciendo algo mas complejo pero esto creo que explica bien todo, para no enredarlos con todo mi codigo.

Saludos!!
  #2 (permalink)  
Antiguo 02/02/2012, 00:51
Avatar de repara2  
Fecha de Ingreso: septiembre-2010
Ubicación: München
Mensajes: 2.445
Antigüedad: 13 años, 7 meses
Puntos: 331
Respuesta: Pasar variables de funciones

Tu código no funcionaría, supongo que te refieres a esto:

Código PHP:
Ver original
  1. class Algo{
  2.    
  3.     var $msg = "";
  4.  
  5.     public function __construct(){}
  6.     public function __destruct(){}
  7.  
  8.     public function hola()
  9.     {
  10.         $this->msg  = "Esta variable es de ambito global"; ///Quiero pasar esta variable a otro metodo
  11.     }
  12.  
  13.     public function adios()
  14.     {
  15.         return $this->hola();
  16.     }
  17.  
  18. }

Salu2!!
__________________
Fere libenter homines, id quod volunt, credunt.
  #3 (permalink)  
Antiguo 02/02/2012, 01:00
 
Fecha de Ingreso: noviembre-2011
Mensajes: 19
Antigüedad: 12 años, 5 meses
Puntos: 2
Respuesta: Pasar variables de funciones

Nope, Mira lo que estoy haciendo es recuperar id's de la base de datos y pasaserlos a otras funciones... te dejo el codigo para hacerlo mas explicito

PD: Trabajo sobre CodeIgniter
Código PHP:
   function getGroup($id)
   {    
       
$this->db->where('group_id'$id);
       
$query $this->db->get('groups');
       
$result $query->row();
       
$idgrade $result->grade_id;

       return 
$result;
   }
   function 
getGrade()
   {
       
$id $this->getGroup($idgrade);
       
$this->db->where('grade_id'$id);
       
$query $this->db->get('grades');
       
$result $query->result();
       foreach(
$result as $row):
           
$idbatch $row->batch_id;
              
$result $query->result();
       endforeach;
       return 
$result;  

   }
   function 
getBatch()
   {
       
$id $this->getGrade($idbatch);
       
$this->db->where('batch_id'$id);
       
$query $this->db->get('batch');
       
$result $query->result();
       return 
$result;
   } 
  #4 (permalink)  
Antiguo 02/02/2012, 01:07
Avatar de repara2  
Fecha de Ingreso: septiembre-2010
Ubicación: München
Mensajes: 2.445
Antigüedad: 13 años, 7 meses
Puntos: 331
Respuesta: Pasar variables de funciones

Si quieres que una variable esté dispobible en otro método, la variable debe ser declarada miembro. Esto se hace con la forma

$this->var = 'foo';

El valor de $this->var se mantiene hasta que sea redeclarado. Claro que antes de acceder a esta variable el método que la declara y le da valor tiene que haberse ejecutado.

http://www.php.net/manual/es/language.oop5.basic.php
Salu2
__________________
Fere libenter homines, id quod volunt, credunt.
  #5 (permalink)  
Antiguo 02/02/2012, 02:05
 
Fecha de Ingreso: noviembre-2011
Mensajes: 19
Antigüedad: 12 años, 5 meses
Puntos: 2
Respuesta: Pasar variables de funciones

No me funciono :( o lo emplee mal

hize algo asi

Código PHP:
class algo {

$variable '';

public 
funct1(){

    
$minuevovalor 'Hello world';
    
$variable $minuevovalor;

}

public 
funct2()
{

    
var_dump($this->variable);

}

}
OUTPUT 
string ''
  #6 (permalink)  
Antiguo 02/02/2012, 02:49
 
Fecha de Ingreso: febrero-2012
Mensajes: 75
Antigüedad: 12 años, 3 meses
Puntos: 6
Respuesta: Pasar variables de funciones

Prueba con

Código PHP:
<?php 

class Algo{

function 
string hola()
{
   
     
$hola  'Hola mundo'///Quiero pasar esta variable a otro metodo
     
return $hola;

}
function 
adios()
{
    
$variable hola();  // o puede que sea $variable = Algo.hola();
     
echo $variable;
}

}
?>
No sé si funcionará directamente como está o hay algún problema de sintaxis porque no lo he probado
__________________
Si quieres conseguir resultados diferentes no hagas siempre lo mismo.

Mejora tu entorno. MestralCadiz con su comunidad.
  #7 (permalink)  
Antiguo 07/02/2012, 16:25
 
Fecha de Ingreso: noviembre-2011
Mensajes: 19
Antigüedad: 12 años, 5 meses
Puntos: 2
Respuesta: Pasar variables de funciones

Solucionado quedaria asi ->>>

Código:
<?php

class algo
{

public $variable1 = '';
function algo()
{
     $any = 'Hello world';
     $this->variable1 =$any;
}

function otra()
{

      $variablepasada = $this->variable1;
      echo $variablepasada;

    
}



}?>

OUTPUT: Hello World
Gracias a todos
  #8 (permalink)  
Antiguo 07/02/2012, 16:32
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: Pasar variables de funciones

Según las necesidades es mejor que los atributos sean privados. También podría ser así:

Código PHP:
Ver original
  1. <?php
  2.  
  3. class Algo
  4. {
  5.     private $_variable;
  6.    
  7.     public function __construct($str)
  8.     {
  9.         $this->_variable = $str;
  10.     }
  11.    
  12.     public function getVariable()
  13.     {
  14.         return $this->_variable;
  15.     }
  16. }
  17.  
  18. $a = new Algo('Hola Mundo');
  19. echo $a->getVariable(); //Hola Mundo
__________________
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

Etiquetas: funciones, variables
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 03:28.