글쓴사람 네오플
글쓴시간2004년 11월 17일 오후 12시 2분 39초
    제목버그신고
혹시 저만 그런지 모르겠네요.. 이것땜시 한참 해맸어욤..

문제는 switch 문에서 define 문제 입니다.

예)
switch($value)
{
 case "a":
   if(true){
     $tpl->define("BODY", ""new.tpl");
   exit;
   }else{
     echo"error";
   exit;
   }
 break;

 case "b":
   if(true){
     $tpl->define("BODY", ""new.tpl");
   }else{
     echo"error";
   }
 exit;
 break;
}

만약 $value 가 a인 경우 정상적으로 실행이 됩니다.
그러나 $value 가 b인 경우 정상적으로 실행되지 않습니다.
error 메세지가 뜨는것도 아니고 아무튼 define이 정상적으로 안된다는 거져
단, exit가 조건문과 같은것에 속해있으면 정상적으로 처리됩니다.
관리자 네오플님 안녕하세요.

소스와 말씀하신 내용을 이해하기가 어렵네요. a,b 두 경우 다 define 후 프로그램이 종료하는데 'BODY' 가 정의되었는지 아닌지 어떻게 확인하셨나요.
04-11-17 12:52
관리자 어떤 문맥에서 메서드가 호출됐든 호출됐다면 메서드 자신이 할 일을 하게됩니다. 문맥이 다르다고 해서 호출된 메서드가 동작하지 않았다면 그것을 그 메서드의 문제로 보기는 어려운거 같네요.
04-11-17 13:02
네오플 define후 프로그램이 종료되는것은 맞습니다. 그런데 후자 b 의 경우는 define 시 파싱이 잘못되는것 같은데요..
소스가 복잡해서 이곳에 보여드리기가 애매한것 같고..
원하시면 지금작업하는 계정을 알려드릴수 있습니다.
04-11-17 13:50
네오플 그리고 죄송하지만 한가지 질문 더
<option value="서울" {? record.area == '서울'} selected {/}>서울</option>
<option value="경기" {? record.area == '경기'} selected {/}>경기</option>
<option value="인천" {? record.area == '인천'} selected {/}>인천</option>
<option value="강원" {? record.area == '강원'} selected {/}>강원</option>
<option value="충남" {? record.area == '충남'} selected {/}>충남</option>
다음과 같은 경우를 탬플릿 파일만으로 처리하기 쉬운 방법 없을까요..?
04-11-17 13:52
네오플 관리자님의 성의있는 답변에 너무 감사합니다.
그리고 Template_ 쓰면쓸수록 매력이 느껴져요.
04-11-17 13:56
관리자 ""new.tpl" 은 글올리실때 오타난 것이겠죠? 템플릿_ 소스에서 define 보시면 조건에 따라 동작하거나 안할 수 있는게 아니라 무조건 tpl_ 속성에 인자값을 넣게 되어 있거든요.
define메서드가 호출됐는데 동작을 안한것인지 아예 호출이 안된 것인지 다시 확인해보셨으면 합니다.
04-11-17 14:04
관리자 option 부분 답변정정합니다. 아래처럼 할 수 있을거 같네요.

<!--{@ array("서울","경기","인천","강원")}-->
<option value="{.value_}" {? record.area == .value_} selected {/}>{.value_}</option>
<!--{/}-->
04-11-17 14:10
네오플 아이구 코드가 길어서 제가 혼자 허접질 했습니다.
switch 문에서 문제가 있는것이 아니라.
어디에서든 exit;가 걸리면 밑에있는 $tpl->print_(); 가 실행되지 않는다는 허접한 오류.. ㅋㅋㅋ
두번째 질문도 감사드립니다.
항상 건강하시고요.. ^^
04-11-17 14:11
관리자 갑자기 어제 오늘 바쁘네요;; 좋은 하루되세요^^
04-11-17 14:13
    이름
비밀번호
 
Since 2003-03-03 hosted on vultr.com