php类没有保存变量

时间:2017-06-20 14:01:42

标签: php arrays json class

我有一个简单的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;
}

2 个答案:

答案 0 :(得分:1)

get_scope方法是私有的(因此无法从外部调用)。

get_scope方法公开,并返回值。

答案 1 :(得分:0)

您的 get_scope()函数声明为私有。要在课外使用它,您应该将其更改为公开。