2011-11-20 48 views
6

我有了下一个功能的控制器:将函数的变量传递给控制器​​中其他函数的代码?

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 
    } 

} 

我感谢你的答案。如何将一个函数的变量传递给codeigniter控制器中的其他函数?

+0

另外,根据“myotherfunction”是否可以通过url调用,您可以使用下划线进行命名,以使其默认情况下不可用,例如'private function _myotherfunction(){}'。 – Matthew

回答

5

或者你也可以设置$变量作为你的类属性;

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'; 
    } 

} 

这样变量将提供给你的控制器类中的所有函数/方法。认为OOP不是程序性的。

+0

这是一个好主意,但是,在mymotherfunction()中,我将打印变量,不显示值,页面为白色。 localhost/myproject/controller/myotherfunction(不要打印echo $ this-> variable),会在构造函数中加载一些吗? 谢谢。我很抱歉我的英语。 – cabita

+0

对不起,看不懂。如果你只是想打印这个变量(你为什么要从控制器来做这件事?),只需要echo $ this-> variable;还是你得到臭名昭着的Codeigniter死亡白屏? – Rooneyl

+0

@cabita如果你想给我发送你的代码,我会看看它并发回(希望工作) – Rooneyl

4

您需要定义一个参数myOtherFunction,然后简单地从myFunction()传递值:

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

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

你好。我把下面的代码: function myfn1(){ $ variable ='hola'; $ this-> myfn2($ variable); } function myfn2($ variable){ echo $ variable; } 和我出现下一个错误: 甲PHP错误遇到 严重性:警告 消息:缺少参数1 testdropdown :: myfn2() 文件名:控制器/ testdropdown.php 行号:20 甲PHP错误遇到 严重性:注意 消息:未定义变量:变量 文件名:控制器/ testdropdown.php 行号:22 感谢您的帮助。 – cabita

相关问题