我有一个简单的API类,可以与基于Web的对应物进行对话。 一切正常,只有一个变量拒绝保存。
我有一个名为$ scope的变量,在类的顶部初始化:
class Api {
private $scope;
public function set_scope( $s ) {
$this->scope = serialize($s);
return true;
}
private function get_scope() {
return unserialize($this->scope);
}
}
接下来我通过API从Web脚本获取作为JSON的范围,我json_decode它作为一个数组(第二个参数为true),并以该形式,我通过set_scope()函数传递它。
我是10000000%确定API返回JSON,当var_dump' ed它返回一个正确的数组数据。
出于某种原因,该数据未保存到$ scope变量中。
有什么想法吗?
编辑#1:
我在另一个函数中调用类中的函数get_scope
。我试图直接设置该变量,所以只使用$this->scope=$scope
,但没有成功。我使用相同的结构化函数来保存/获取其他变量,除了这一个之外,所有变量都在工作。
其他功能如下:
public function get_modules() {
$av_modules = $this->available_modules;
$scope = $this->get_scope();
var_dump($scope);
foreach($scope as $mod) {
$av_modules[$mod] = true;
}
return $av_modules;
}
答案 0 :(得分:1)
get_scope
方法是私有的(因此无法从外部调用)。
将get_scope
方法公开,并返回值。
答案 1 :(得分:0)
您的 get_scope()函数声明为私有。要在课外使用它,您应该将其更改为公开。