소개
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