2015-02-02 1 views
0

다소 원시적 인 오류 로깅을 사용하여 클래스를 작성합니다. 그것은 마지막으로 수행 된 동작을 기록하는 "action"이라는 속성으로 배열을 사용합니다. 그러나 작동하지 않습니다.정의되지 않은 변수 + 빈 속성에 액세스 할 수 없습니다.

  1. 주의 사항 : 매번 내가 같은 줄에 모두 다음과 같은 오류를 얻을 뭔가를 저장하려고 정의되지 않은 변수 : 액션

  2. 치명적인 오류 : 빈 특성을 액세스 할 수 없습니다

에서을 아래에서 위로 필드는 다음과 같이 정의됩니다.

class Foo 
{ 
    ... 

    public $action = array(); 

    ... 

Y의 작용에 의해 :

private function update() { 

    ... 

    unset($this->action); 
    $this->action = array(); 
} 

그리고 형식 다음 설정 (이 여러 장소에서 수행하고 모두 같은 오류가 반환됩니다) :

$this->update(); 
array_push($this->$action, "Bar"); 

내가이 항상 첫 번째 단계에서 발생하는 눈치 때문에, 나는 구문 오류를 의심하지만 정확히 어디에서 단서가 없습니다.

누구든지 문제를 확인할 수 있습니까? 라인에서

+4

'$이 -> $ 의회 처리 ->'$ this-> 너무 많은 1 개 달러 기호 의회 처리. – Rizier123

+0

'$ this -> $ action'은 $ action이 정의되지 않았기 때문에'$ this-> { ""}'(즉 "this의 빈 속성"과 동일합니다.) 실수로 가변 속성을 사용하고 있습니다. –

+0

아야, 그리고 내가 그걸 확인했다고 생각했다 : -/그게 문제를 해결했습니다! – Marten

답변

0

잘못된 변수 참조 :

array_push($this->$action, "Bar"); 

사용 :

$var->property_of_var 
array_push($this->action, "Bar"); 
관련 문제