제목 | [팁] CI 이용시 가변변수 응용예제 | ||
---|---|---|---|
글쓴이 | ci세상 | 작성시각 | 2009/08/04 18:14:35 |
|
|||
간혹 CI 코딩시 메쏘드를 분리시켜서 불러오고 필요에 의해서 메쏘드명을 찾아서 실행해 주는 코드를 볼 수가 있는데요 .. 이것을 CI에서 바로 응용하기 위해서는 php메뉴얼에 다음 파트를 이해하면 쉽게 응용이 가능할것 같아서 정리해 봅니다^^ php 메뉴얼 가변함수 (variable function)는 변수명 뒤에 괄호가 왔을때, 해당 함수를 찾아 실행하게 처리하게 되는데요 CI의 클래스의 메쏘드에서도 바로 응용이 가능합니다. <예제1> - 용도 : 메쏘드 A를 받아서 바로 출력해 주는 경우입니다. - 실행주소 : http://도메인/blog - 결과출력 : A함수 class Blog extends Controller { function Blog() { parent::Controller(); } function index() { $method = "A"; $this->$method(); } function A() { echo "A함수<br>"; } }<예제2> - 용도 : 메쏘드 A0, A1, A2를 번갈아 출력 - 실행주소 : http://도메인/blog - 결과출력 : A함수 B함수 C함수 class Blog extends Controller { function Blog() { parent::Controller(); } function index() { for ($i=0;$i<3;$i++) { $method = "A$i" ; $this->$method(); } } function A0() { echo "A함수<br>"; } function A1() { echo "B함수<br>"; } function A2() { echo "C함수<br>"; } }<중괄호 이용해서 같은 결과물 출력 : php3 작동안함> class Blog extends Controller { function Blog() { parent::Controller(); } function index() { for ($i=0;$i<3;$i++) { $this->{"A$i"}(); } } function A0() { echo "A함수<br>"; } function A1() { echo "B함수<br>"; } function A2() { echo "C함수<br>"; } } <예제3> - 용도 : 배열구조의 멤버변수를 가변변수로 다루는 경우 - 실행주소 : http://도메인/blog - 결과출력 : 1 class Blog extends Controller { function Blog() { $this->arr[0] = 0; $this->arr[1] = 1; parent::Controller(); } function index() { $prop = "arr"; echo $this->{"$prop"}[1]; } } |
|||
다음글 | 검색파라미터 구하기 (2) | ||
이전글 | 한글 언어팩 번역 다시 했습니다 (5) | ||
변종원(웅파)
/
2009/08/04 22:28:47 /
추천
0
|
ci세상
/
2009/08/04 23:05:42 /
추천
0
대부분, 많이 라는 표현 뺐습니다.^^ |
자주는 아니지만 어쩌다 쓸 필요가 있죠. 그럴때마다 함수선언에서 에러가 나서 헤맨다는...
ci에서는 _remap()이 같은 역할을...