CI 묻고 답하기

제목 switch 문이 신기하게 생겼네요.
글쓴이 불꽃코딩 작성시각 2010/01/28 11:52:56
댓글 : 4 추천 : 0 스크랩 : 0 조회수 : 26589   RSS

switch ($doc->nodeType) {
        case XMLReader :: ELEMENT :
         /** 엘레멘트 이름 추출 */
         $this->tValue = $doc->name;
         /** 속성이 있는 노드라면 */
         if ($doc->hasAttributes) {
          /** 노드만큼 루프를 돌면서 다음 속성 노드로 이동 */
          while ($doc->moveToNextAttribute()) {
           /** assoc배열을 위해 1차 배열로 넣는다.*/
           /* EUC-KR일때 사용
           $this->tArray[$doc->name] = iconv($this->charSet["encode"], $this->charSet["decode"], $doc->value);
           */
           $this->tArray[$doc->name] = $doc->value;
          }
          /** 엘레멘트 노드 이름으로 배열을 넣는다(2차) */
          $this->xmlData[$this->tValue] = $this->tArray;
         }
         break;
        case XMlReader :: END_ELEMENT :
         if ($doc->name == $pathName)
          return $this->xmlData;
         break;
       }


제가 알고 있는 switch 문은 아래와 같은데 말이죠.

switch(cola) {
  case "cola":
    echo "cola selected";
    break;

  case "suhoi":
    echo "suhoi selected";
    break;

  default:
    echo "not ";
    break;
}


즉, 궁금한것은 case XMLReader :: ELEMENT :  -> 이것을 위와 같은 형태로 바꾼다고 했을때 어떻게 바꿀수 있는건가요?

 

 다음글 하위단에 있는 변수를 참조하는방법이 궁금합니다. (1)
 이전글 CI 이용해서 솔루션 만들었을때 라이센스가 어떻게 되는... (2)

댓글

변종원(웅파) / 2010/01/28 12:44:49 / 추천 0

case 에 괄호 넣고 안넣고 차이입니다. 괄호 없어도 돌아갑니다.

XMLReader :: ELEMENT 

XMLReader 객체의  ELEMENT 상수쯤 되겠네요.

표현방법의 차이인데 plugin이라는 라이브러리가 선언되어 있다고 가정하고

$this->plugin->run() 과 plugin::run() 은 동일한 구문입니다.

변종원(웅파) / 2010/01/28 12:48:24 / 추천 0
찾아보니 상수 맞네요. http://php.net/manual/en/class.xmlreader.php
불꽃코딩 / 2010/01/28 14:53:25 / 추천 0

웅파님... 자꾸 이렇게 좋은 답변 달아주시면 제가 어찌 감사의 표현을 해야 할지 모르겠네요 ^^;

정말 감사합니다.

변종원(웅파) / 2010/01/28 15:00:04 / 추천 0
ㅎㅎ ci를 널리 홍보하시고 퍼트리시면 됩니다. ^^