본문 바로가기

PHP/PHP Programming

[PHP] 가변변수

반응형

가변변수


 가변 변수란 유동적 변수라고 할 수 있어, 어느 정도 편리함이 있습니다. 보통 일반 벼수는 다음과 같이 표현을 합니다.


ex #01)

<?php
	$a = "hello";
?>


ex #02)

<?php
	$a = "hello";

	// $a 변수가 $hello 변수로 가변적으로 변하게 됩니다.
	$$a = "wicked";
?>


 $a 변수에 hello 값을 정의하고, 다시 hello 변수에 wicked값을 정의하여, 다음과 같은 결과를 얻게 됩니다.


ex #03)

<?php
	$a = "hello";
	$$a = "wicked";
	echo $a;    // 출력 : hello
	echo $hello;    // 출력 : wicked
?>


 다음도 좋은 결과물 입니다.


ex #04)

<?php
	$Bar = "a";
	$Test = "Bar";
	$World = "Foo";
	$Hello = "World";
	$a = "Hello";

	echo $a."
\n"; // 출력 : Hello echo $$a."
\n"; // 출력 : World echo $$$a."
\n"; // 출력 : Foo echo $$$$a."
\n"; // 출력 : Bar echo $$$$$a."
\n"; // 출력 : a echo $$$$$$a."
\n"; // 출력 : Hello echo $$$$$$$a."
\n"; // 출력 : World ?>


 배열을 가변 변수로 사용할 수 도 있습니다.


ex #05)

<?php
	$number = array("one", "two", "three");
	$a = "number";
	${$a}[] = "four";    // 배열 추가
	print_r($number);

	/*
		출력 :
			Array
			(
				[0] => One.
				[1] => tow.
				[2] => three.
				[3] => four.
			)
*/
?>


 다음은 클래스명 가변 변수의 예입니다.


ex #06)

<?php
	class wicked {

		public function phptest() {

			echo "Hello world!";
		}
	}

	$my_wicked = 'wicked';
	$x = new $my_wicked();
	$x -> phptest();    // 출력 : Hello World!
?>


 가변 변수(동적 변수) 사용시 함수나 클래스 메소드 안에서 $this -> 로 사용되는 특수한 변수는 동적인 변수로 사용될 수 없음에 주의해야 하고, 이로서 메소드 안에서만큼은 변수가 쉽게 변질되는 것을 막을 수 있습니다.

반응형

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

[PHP] 클래스의 기본문법  (3) 2015.04.07
[PHP] 상수의 정의  (0) 2015.03.31
[PHP] 정적변수  (0) 2015.03.29
[PHP] CGI 환경변수  (0) 2015.03.29
[PHP] 함수의 기본 문법  (0) 2015.03.17