php类从数组中的另一个函数获取变量

New*_*ser 1 php arrays class

我有一个PHP类.在课堂上我有一个叫做的函数setContent().在里面我有多个变量值.我已经获取了这些变量值并将它们存储在一个数组中.在另一个函数中,我希望将所有变量存储在一个数组中.所以我的代码是这样的

class foo{
    public function setContent() {
        global $my_array;
        $var1 = 'variable 1';
        $var2 = 'variable 2';
        $var3 = 'variable 3';
        $var4 = 'variable 4';
        $var5 = 'variable 5';
        new_array = array();
        $my_array = array_push($new_array, $var1, $var2, $var3, $var4, $var5);
    }

    public function getContent() {
        global $my_array;
        var_dump($my_array);
    }
}
Run Code Online (Sandbox Code Playgroud)

但是当我在做的时候var_dump($my_array).它的表现NULL.所以有人可以告诉我如何将这些变量放在数组中的其他函数中.任何帮助和建议都会非常明显.

Dja*_*ave 5

您可以通过在类中声明它来设置要使用的数组.然后,你只是引用$this而不是全局变量.

class foo{
    public $my_array; # new bit here

    public function setContent() {
        # global $my_array; take this bit out
        $var1 = 'variable 1';
        $var2 = 'variable 2';
        $var3 = 'variable 3';
        $var4 = 'variable 4';
        $var5 = 'variable 5';
        $new_array = array();
        $this->my_array = array_push($new_array, $var1, $var2, $var3, $var4, $var5);
    }

    public function getContent() {
        var_dump($this->my_array);
    }
}
Run Code Online (Sandbox Code Playgroud)

因为数组现在是foo对象的一部分,所以我们现在可以一直引用它.如果您要公开它,您可以执行以下操作:

$f = new foo();
print_r($f->my_array);
Run Code Online (Sandbox Code Playgroud)