-1

我在类中的数组有问题。如果我将它设置为静态,我可以访问它,但如果它不是静态的,我无法弄清楚如何修改它并在我的函数上访问它。

class Example {
    protected static $_arr = array(
        "count",
    );

    public static function run($tree) {
        $_arr[] = "new";
        print_r($_arr );
    }
}

如何访问数组、修改它并从我的公共函数“运行”中打印它?

4

2 回答 2

1

$_arr[] = "new";

指的是您的函数本地的数组。要访问您的类的静态变量,您必须使用语法 ==>self::staticVariableName

你的代码应该是:

class Example {
protected static $_arr = array(
    "count",
);

public static function run($tree) {
    self::$_arr[] = "new";
    print_r(self::$_arr );
}
于 2013-02-23T05:29:30.267 回答
0

我刚刚从 @MQuirion 的代码中制作了一个片段。在这里,我写了如何处理类中的非静态属性。我希望现在你可以在课堂上使用你的数组。

class Example {
    protected $_arr = array(
        "count",
    );

    public function run($tree) {
        // print new array + your properties
        $this -> _arr[] = $tree;
        //To print only new assigned values without your declared properties
        $this -> _arr = $tree;
        print_r($this->_arr );
    }
}
$obj = new Example();
$tree = array('a','b','c');
$result = $obj->run($tree);
于 2013-02-23T06:02:54.713 回答