2

控制器:

function act() {
    //some code for connection
    $input = (response from client);
    return $input;
}

这是第一次调用该行为以连接到客户端。在这里,我将通过连接获取输入变量。

function a() {
    $a = $this->act();  
}

如何$input在不重新建立连接的情况下获得此功能?

function b() {

}

我试过把它放在会话 flashdata 中,但它不起作用。

4

4 回答 4

3

你不能。

为了获得该变量,您需要将其放在函数本身之外。

class MyController extends CI_Controller
{
    private $variable;

    private function act()
    {
        $input = (response from client)
        return $input
    }

    private function a()
    {
        $this->variable = $this->act();
    }
}

这样做将使您能够从类中的任何地方访问该变量。
希望这可以帮助。

于 2013-06-07T09:53:31.593 回答
2

它在您class定义一个变量时很简单,例如

 in controller class below function is written. 
Class myclass {
public  $_customvariable;

function act(){
   //some code for connection
 $this->_customvariable=  $input = (response from client);
   return $input;
}

function a() {
$a = $this->act();  
}
function b(){
 echo $this->_customvariable;//contains the $input value 
    }

 }
于 2013-06-07T09:49:26.350 回答
0
class fooBar {

    private $connection;

    public function __construct() {
        $this->act();
    }

    public function act(){
       //some code for connection
       $this->connection = (response from client);
    }

    public function a() {
        doSomething($this->connection);
    }

    public function b() {
        doSomething($this->connection);
    }
}
于 2013-06-07T09:50:53.927 回答
0

您可以在方法或函数中使用静态变量,响应在函数中是一种“缓存”

function act(){
    static $input;
    if (empty($input))
    {
        //some code for connection
        $input = (response from client);
    }
    return $input;
}
于 2013-06-07T09:53:11.807 回答