如何在代码点火器控制器中访问不同功能的成员变量


How to access a member variable of different function in a codeigniter controller

//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}回到函数? 如何访问不同成员函数中的成员变量

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

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

因此,在您的情况下,它应该是这样的:

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

这是你真正需要的吗?

一个可能的解决方案:

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)。

你的

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

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