2013-02-23 8 views
-1

클래스 내부의 배열에 문제가 있습니다. 정적으로 설정하면 액세스 할 수 있지만 정적이 아닌 경우 함수를 수정하고 액세스하는 방법을 파악할 수 없습니다.클래스 내부에서 배열에 액세스하여 수정하는 방법은 무엇입니까?

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

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

배열을 액세스하고 수정 한 다음 내 공개 기능 "실행"에서 인쇄하려면 어떻게해야합니까?

답변

1

$_arr[] = "new";

은 함수의 로컬 것 배열을 말한다. 클래스의 정적 변수에 액세스하려면 self::staticVariableName

당신 코드가 있어야 구문을 ==> 사용할 수 있습니다

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

public static function run($tree) { 
    self::$_arr[] = "new"; 
    print_r(self::$_arr); 
} 
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); 
관련 문제