//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
)。
问题并没有真正解释你在做什么,所以很难解释一个更好的解决方案,但是,如果你试图在多个地方访问一个"变量",你应该真正分离你的代码,这样你就有一个单一的入口点该变量。
您的变量是动态的,还是静态的?