2011-11-20 77 views
6

que tienen un controlador que tiene las siguientes funciones:¿Pasar variables de una función a otra función en un controlador en codeigniter?

class controller { 

    function __construct(){ 

    } 

    function myfunction(){ 
     //here is my variable 
     $variable="hello" 
    } 


    function myotherfunction(){ 
     //in this function I need to get the value $variable 
     $variable2=$variable 
    } 

} 

I gracias por sus respuestas. ¿Cómo puedo pasar variables de una función a otra función en un controlador de codeigniter?

+0

También, dependiendo de si es o no 'myotherfunction' debería ser exigible a través de una URL, puede que el nombre con un guión por lo que no estará disponible por defecto, como por ejemplo' _myotherfunction función privada() {} '. – Matthew

Respuesta

5

o puede establecer $ variable como un atributo en que la clase;

class controller extends CI_Controller { 

    public $variable = 'hola'; 

    function __construct(){ 

    } 

    public function myfunction(){ 
     // echo out preset var 
     echo $this->variable; 

     // run other function 
     $this->myotherfunction(); 
     echo $this->variable; 
    } 

    // if this function is called internally only change it to private, not public 
    // so it could be private function myotherfunction() 
    public function myotherfunction(){ 
     // change value of var 
     $this->variable = 'adios'; 
    } 

} 

De esta manera variables estarán disponibles para todas las funciones/métodos en su clase controlador. Piensa OOP no procesal.

+0

es una gran idea, sin embargo, cuando en mymotherfunction(), voy a imprimir la variable, no mostrar el valor, la página está en blanco. localhost/miproyecto/controlador/myotherfunction (no imprima echo $ this-> variable), será a cargar algunos en el constructor? gracias. Lo siento, mi inglés. – cabita

+0

lo siento, no puedo entender. Si solo desea imprimir la variable (¿por qué lo hace desde un controlador?), Solo haga echo $ this-> variable; ¿O está obteniendo la infame pantalla blanca de la muerte de Codeigniter? – Rooneyl

+0

@cabita Si quieres enviarme su código, voy a echar un vistazo a él y lo envía de nuevo (esperemos que trabajan) – Rooneyl

4

es necesario definir un parámetro para myOtherFunction y luego simplemente pasar el valor de myFunction():

function myFunction(){ 
    $variable = 'hello'; 
    $this->myOtherFunction($variable); 
} 

function myOtherFunction($variable){ 
    // $variable passed from myFunction() is equal to 'hello'; 
} 
+0

Hola. Pongo el siguiente código: función myfn1() { variable $ = 'hola'; $ this-> myfn2 ($ variable); } function myfn2 ($ variable) { echo $ variable; } y me aparece el siguiente error: Un PHP Se encontró el error Severidad: Aviso mensaje: Falta el argumento 1 de testdropdown :: myfn2() Nombre del archivo: controladores/testdropdown.php Número de línea : 20 A PHP Error se encontró Gravedad: Observe Mensaje: Undefined variable: variable de Nombre del archivo: controladores/testdropdown.php NúmeroLínea: 22 Gracias por su ayuda. – cabita

Cuestiones relacionadas