소개
PHP에서는 변수 이름을 동적으로 설정할 수 있습니다. 이러한 변수는 기존 변수의 값을 이름으로 사용합니다. 변수 변수는 접두사로 두 개의 $ 기호로 정의됩니다.
예시
<?php $var1="xyz"; //normal variable $$var1="abcd";//variable variable echo $var1 . "\n"; echo $$var1 . "\n"; echo "{$$var1} $xyz"; ?>
출력
이 스크립트는 다음 출력을 생성합니다.
xyz abcd abcd abcd
$$var1의 값은 $xyz와 동일하며 xyz는 $var1의 값입니다.
일반 변수의 수치는 변수 변수로 사용할 수 없습니다.
예시
<?php $var1=100; //normal variable $$var1=200;//variable variable echo $var1 . "\n"; echo $$var1 . "\n"; echo $100; ?>
출력
이 스크립트가 실행되면 다음과 같은 결과가 표시됩니다.
PHP Parse error: syntax error, unexpected '100' (T_LNUMBER), expecting variable (T_VARIABLE) or '{' or '$' line 6
배열 첨자로 변수 변수를 정의하는 것도 가능합니다. 다음 예에서는 일반 배열의 0번째 요소를 사용하여 변수 변수를 정의합니다.
예시
<?php $var1=array("aa","bb"); //normal variable ${$var1[0]}=10;//variable variable with array element echo $var1[0] . "\n"; echo $aa . "\n"; echo ${$var1[0]} . "\n"; ?>
출력
이것은 다음 결과를 생성합니다 -
aa 10 10
클래스 속성은 변수 속성 이름을 사용하여 액세스할 수도 있습니다. 이 기능은 속성 이름이 배열로 구성된 경우에 유용합니다.
예시
<?php var $u = "Architecture"; var $ugCourses = array("CSE","MECH","CIVIL"); $obj = new branches(); $courses = "ugCourses"; echo $obj->{$courses[0]} . "\n"; echo $obj->{$courses}[0] . "\n"; ?>
출력
이것은 다음 결과를 생성합니다 -
Architecture CSE