从控制器中的一个函数获取返回变量或变量到另一个函数

时间:2014-05-13 09:27:22

标签: codeigniter

我想知道是否允许在一个控制器中访问/获取/使用从一个函数到另一个函数的变量?

谢谢。

2 个答案:

答案 0 :(得分:0)

尝试这样的事情。

class Index extends CI_Controller {
    protected $var1;

    public function index() {
        $this->setVar1();
        echo $this->var1; // print $var1
    }

    public function setVar1() {
        $this->var1 = 1;
    }
}

答案 1 :(得分:0)

$superduper = 'superduper' ; 

仅在方法(功能)中本地可用 或像

一样传递
$this->reviews->insertToReviews($superduper) ;

<强>

$this->superduper = 'superduper' ; 

只要$ this-&gt; variablename在控制器中声明,它立即可用于:

  • 控制器中的任何方法
  • 控制器调用的任何模型中的任何方法
  • 控制器调用的任何视图文件

所以不传递变量 - 在视图中你可以使用

echo 'my lunch is ' . $this->superduper ; 

但通常最好将值显式传递给视图,特别是如果它们对于方法是唯一的 - 它可以更容易地查看正在发生的事情。所以在控制器的情况下:

$data['superduper'] = $this->superduper ; 

并在视野中

 echo 'my lunch is ' . $superduper ; 

现在当有人看到控制器中的方法时 - 我们可以看到superduper正被传递给$ data。关键是即使你可以通过声明$ this-&gt; somename来避免将变量名传递给方法或视图 - 如果你在本地传递它们,它可以更容易看到发生了什么。

反面是:

$this->error_message = "Error retrieving database records"; 

太棒了。您可以在任何方法中获得错误消息,无论发生什么,它们都将自动可用。所以在你的视图文件中有类似

的东西
if($this->error_message != '') { echo $this->error_message ;} 

这在您构建网站时特别有用。