如何在codeigniter控制器中访问不同函数的成员变量

时间:2012-06-13 08:37:08

标签: php codeigniter

//first function
function insertdigit(){
$userdigit=5;
$flag = $this->usermodel->userdigitmodel($userdigit);


        $value = array(
            'result' => $flag
        );
        echo json_encode($value);
        if ($flag == true) {
              return $userdigit;
        } else {
        }

}
//second function
function usedigit(){
$data['userdigit']=$this->insertdigit();
}

但我得到{"result":true}回到函数?如何在不同的成员函数中访问成员变量

3 个答案:

答案 0 :(得分:0)

尝试删除代码中的echo json_encode($value);

答案 1 :(得分:0)

如果您需要在控制器上的多个功能中访问参数,则必须在功能之外创建它,以便它可用于所有控制器功能。

所以,在你的情况下,它应该是这样的:

class Test extends Controller
{
    private $userdigit; //here you can set a default value if necessary: private $userdigit = 5

     function insertdigit(){
        $this->userdigit=5;
        $flag = $this->usermodel->userdigitmodel($this->userdigit);


        $value = array(
            'result' => $flag
        );
        echo json_encode($value);
        if ($flag == true) {
              return $this->userdigit;
        } else {
        }

    }
    //second function
    function usedigit(){
      $data['userdigit']=$this->userdigit;
    }

}

这样,您的userdigit变量可用于您的所有功能。使用$this,您告诉PHP您正在尝试访问类中的某些内容。

此链接包含更多有用的信息:http://www.php.net/manual/en/language.oop5.properties.php

这是你真正需要的吗?

答案 2 :(得分:0)

可能的解决方案:

function insertdigit() 
{
    $userDigit = 5;
    $flag = $this->usermodel->userdigitmodel($userDigit);
    $value = array
    (
        'result' => $flag
    );
    if(!empty($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest')
    {
        echo json_encode($value);
    }
    if ($flag == true) 
    {
        return $userdigit;
    } 
    else 
    {
    }
}
//second function
function usedigit()
{
    $data['userdigit'] = $this->insertdigit();
}

insertdigit中的上述代码检测是否存在Ajax请求,如果存在,则会回显json_encode d数据。如果您在正常请求中调用它,即通过usedigit它将不会回显json_encode d数据(除非您通过Ajax请求调用usedigit)。

你的问题并没有真正解释你在做什么,所以很难解释一个更好的解决方案,但是,如果你试图在一个以上的地方访问一个“变量”,你应该真正分开你的代码,所以你该变量有一个入口点。

您的变量是动态的,还是静态的?