본문 바로가기

Web/PHP

[문법][팁] 변수이름 자체를 변수로 가공하기

안녕하세요.
BEAT입니다.

이곳 Q/A란에서 제가 답변했던 내용입니다.
하지만 쓰다보니 이미 아시는분도 많겠지만,
모르시는분도 한분이라도 없으면...해서..
올립니다..

===============================================================

우리가 눈으로 구별할수 있는 소스와 파서가 구별할수 있는 소스는
조금 차이가 있습니다.

아래와 같이

$name씨안녕?

이렇게 사용을 한다면, 우리는 한글과 영문의 확실한 구별을 할수 있겠
지만, PHP파서는 아쉽게도 그러지 못하네요..

즉, "$name씨안녕?" 이라는 변수를 찾는겁니다. php는.

그때문에 PHP에서는 변수의 이름을 지정할수 있도록 문법을 지원하는데
아래와 같습니다.

${변수이름}

위처럼 {} 로 둘러쌓인부분이 변수 이름이 되는 부분이네요.
그러면, 또 한가지. 그럼 변수이름을 반복문이나 또는 랜덤으로
생성해 내야할 필요가 생긴다면?

아래처럼 하시면 됩니다.

$i=1;
${"name".$i} = "BEAT";

echo $name1;

========= 결과 =======
BEAT

즉 {} 안에 들어갈 내용에도 변수를 지정할수 있습니다.
편하죠?
이를 응용하면, 다양하게 사용할수 있습니다.

for($i=0;$i<100;$i++)
    {
     ${"name".$i} = "BEAT.${I}";
    }

for($i=0;$i<100;$i++)
echo ${"name".$i};

배열을 쓰지 않고 변수 이름 자체를 제작 가능하니 참 여러모로
유용하겠죠?

또 한가지,

$를 두번 연속으로 붙여서 사용하여 변수 이름 자체를 변수로 가질수
있습니다.

즉,

$name = "BEAT";
$name2 = $$name;

echo $name2;

이렇게 하면

$name2 는 $BEAT와 같은 값을 가지겠죠.

참 많은 분들이 알고 계신 내용이지만,
한번 정리해봤습니다.

도움되셨기를..

'Web > PHP' 카테고리의 다른 글

[self] 클래스 공통사용  (0) 2013.09.26
[self] 클래스 카테고리  (0) 2013.09.26
[self] 클래스 업로드  (0) 2013.09.26
GD를 이용한 원형 백분율 예제  (0) 2013.09.26
엑셀로 만들기  (0) 2013.09.26