-1

クラス内の配列に問題があります。静的に設定するとアクセスできますが、静的でない場合、関数で変更してアクセスする方法がわかりません。

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

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

パブリック関数「run」内から配列にアクセスして変更し、出力するにはどうすればよいですか?

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 に答える