2011-12-10 4 views
-1

두 개인 배열이 있고 모두에 콘텐츠를 추가하려고합니다 str_replace($content, $array1, $array2).배열이 왜 채워지지 않습니까?

class whyWontThisWork { 
     private $replaceArr = array(); 
     private $replacedArr = array(); 
     public function addReplacement ($tag,$rep) { 
      $this->replaceArr[] = $tag; 
      $this->replacedArr[] = $rep; 
     } 
} 

는 내가 객체를 시작하고

$myObjectCreatedEarlier->addReplacement("Something","SomethingElse"). 

$this->replaceArr 그것의 내부에 "뭔가"가 호출, 내 비즈니스에 대한 이동 :

여기에 기본적인 예입니다.

그러나 다른 배열 $this->replacedArr에는 그 안에 "SomethingElse"가 없으므로 이유에 대한 단서가 없습니다. print_r과 같은 몇 가지 기본 디버깅을 수행하여 $rep이 존재하고 심지어 코드 주위를 돌아 다니는 것을 확인했지만 잘못된 것을 찾을 수 없었습니다. 대부분의 문제와 마찬가지로 오류를 확인하기 위해 다른 사람이 필요하기 때문에 도움을받을 수 있습니까?

오류 발견 편집, 내 부분에 맞춤법 실수였다. 사람들을 돕기 위해 노력해 주셔서 고맙습니다.하지만 저의 모든 수업 단어에 단어를 붙여 넣지 않고서는 알아낼 수 없었던 무언가를 도와 줘서 고맙습니다.

그래도 일종의 버그가 아니었기 때문에 좋았습니다.

+1

부르는 방식으로 구문 오류가 발생합니다. 뭔가 빠진 후에 따옴표가 누락되었습니다. 그 외에는 호출 문에서 클래스에 대한 참조가 표시되지 않습니다. – Dan

+0

오 죄송합니다.이 예제 코드로 전체 클래스를 게시 할 수 없습니다. 그것은 보통의 클래스로서 불리고있다. 그것을 틀린 다른 누군가에 의해 편집 된대로 편집하십시오. –

+1

코드를 복사하고 값을 출력하는 메소드를 추가 했으므로 제대로 작동합니다. 배열의 내용을 어떻게 확인합니까? '$ myObjectCreatedEarlier-> output();'과 같은 일을하고 그 메소드에서 두 배열의 var_dump를 수행하십시오. – Dan

답변

1

개인 속성이있는 개체를 print_r()하면 해당 개인 속성의 값이 표시되지 않을 수 있습니다. 클래스 자체에 print_r() 자체에 디버그 함수를 넣고 그 메소드를 다른 곳에서 호출 해보십시오.

표시 한 코드에서 분명히 잘못된 것은 없습니다 ...

관련 문제