//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}
回到函数?如何在不同的成员函数中访问成员变量
答案 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
)。
你的问题并没有真正解释你在做什么,所以很难解释一个更好的解决方案,但是,如果你试图在一个以上的地方访问一个“变量”,你应该真正分开你的代码,所以你该变量有一个入口点。
您的变量是动态的,还是静态的?