| 제목 | [팁] 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()이 같은 역할을...