【发布时间】:2017-06-20 14:01:42
【问题描述】:
我有一个简单的 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;
}
【问题讨论】:
-
我想知道为什么你在设置它的时候
serialize这个值,而在获取它的时候unserialize。这不是多余的吗? -
我正在尝试各种方法来保存它,但即使使用
$this->scope也无法保存值,我不知道为什么