글쓴사람 궁금이
글쓴시간2004년 3월 5일 오후 1시 36분 32초
    제목루프 표현식으로 리턴될 배열에 직접 접근하는 방법?
$test = Array ( 0=>Array('subj'=>'제목0','writer'=>'글쓴이0'),
        1=>Array('subj'=>'제목1','writer'=>'글쓴이1'),
        2=>Array('subj'=>'제목2','writer'=>'글쓴이2'),
        .
        .
        .
        );
항상 허접한 질문에 빠른답변 감사합니다.
제가 멍해서인지 아무리 생각해도 방법이 없는거 같네요..
내 머리의 한계인가?
루프 표현식이 위와 같은 배열을 리턴한다고 했을때
루프 같으면
{@ 함수명()}
{.subj}
{.writer}
{/}
이런식으로 접근이 가능하겠지만
배열 인덱스로 직접 접근하는 방법이 없을까요?
{test['0'].subj}
{test['3'].writer}
이렇게 접근할 수 있는 방법은 없는걸까요?
이삼구 ADODB를 쓰시나보네요. ^^
1. {TEST['0']['subj']}
2. {TEST['0'].subj}
이렇게 접근이 가능하네요. assign만 해주면 되더군요.
04-03-05 15:22
궁금이 이삼구님 답변감사합니다.
루프아이디를 안다면 당근 이삼구님께서 답변해 주신것처럼
접근이 가능하겠죠..
그런데 루프표현식 설명서에 보면
변수명을 리턴한다고는 안되어 있는데
위의 $test라는 변수명은 임의로 제가 부친거고..
루프표현식 설명서에서는
"루프아이디가 없기 때문에 해당루프의 변수는 루프아이디를 생략하는 형태만 가능하고 "
위와 같이 설명이 되어있는데 루프아이디와 함께
리턴 해 줄 수 있는 방법이 없을까 하는것입니다.
관리자님께서 오늘은 바쁘신가 보네요...흐...흑..^--^
04-03-05 17:59
파란 예를들어 {@ temp = 함수()} 이런게 먹혀서 표현식에도 아이디를 할당할수 있었으면 좋겠어요 ^^
04-03-06 08:51
관리자 궁금이님 질문하신 내용은 배열을 리턴하는 함수를 템플릿 내에서 사용할 때, 그 배열을 루프가 아닌 용도로 사용하는 방법을 말씀하신거 같네요.

일단 템플릿 문법에는 "할당"이 없기 때문에 정상적인 방법으로는 되지 않습니다.

단.. 설명서3-17 에 나와있는 것처럼 템플릿 내에서 PHP 코딩을 하시면 됩니다.

<?{test}=함수명();?>

{test[0].subj}
{test[3]['writer']}

와 같이 할 수 있고 플러그인 함수라면..

<?{test}={=함수명()};?>

이렇게 하실 수 있구요.

보다 좋은 방법은.. 객체를 사용하시는 것입니다.

객체플러그인의 경우 클래스의 생성자 함수내에서.. 필요한 속성의 값이 할당되도록 작성한다면..

{P.testObj->subj}
{P.testObj->writer}

와 같이 템플릿내에서 할당할 필요없이 바로 속성을 이용할 수 있습니다.

템플릿 내에서 "할당"을 지원하지 않는 이유는.. 비즈니스로직을 템플릿내에서 구현하는 것을 방지하는 목적이 있고, 잘 연구(?)해 보시면.. 할당하지 않더라도.. 뷰에 필요한 로직을 모두 템플릿 내에서 구현하실 수 있을거라 생각됩니다.
04-03-08 00:37
궁금이 답변 감사합니다.
관리자님의 조언대로 클래스로 해결하였읍니다.^.^
04-03-08 17:29
관리자 해결돼서 다행이네요. 답변이 늦었는데.. 다른 분들이 쉽게 이해할 수 있게.. 질문하셨으면 더 좋았을 것 같습니다.
04-03-08 20:12
    이름
비밀번호
 
Since 2003-03-03 hosted on vultr.com