이렇게 쓰는 방식을 변수변수라고 합니다
가끔 변수변수명을 사용하는 것이 편리할 때도 있습니다. 즉, 변수의 변수명을 동적으로 설정하여 사용할 수 있다. 일반 변수는 다음과 같이 선언으로 설정됩니다.
$a = "hello";
?> 변경 가능한 변수는 다음과 같이 일반 변수의 값을 가져옵니다. 가변 변수의 변수 이름입니다. 위의 예에서는 달러 기호($)를 두 개 사용한 후 hello를 변수 변수로 사용할 수 있습니다. 예를 들면 다음과 같습니다.
$$a = "world";
?>
이때 두 개의 변수가 정의됩니다. $a의 내용은 "hello"이고 $ hello의 내용은 "world"입니다. 따라서 다음과 같이 표현할 수 있습니다.
echo "$a ${$a}";
?>
다음이 더 정확하며 동일한 결과를 출력합니다.
echo "$a $hello";
?>
모두 hello world가 출력됩니다.
배열에 가변 변수를 사용하려면 모호성을 해결해야 합니다. 이는 $$a[1]을 작성할 때 파서가 $a[1]을 변수로 원하는지, 아니면 $$a를 변수로 원하는지 여부를 알고 인덱스 [1] 값으로 변수를 추출해야 합니다. 이 문제를 해결하기 위한 구문은 첫 번째 경우에는 ${$a[1]}를 사용하고 두 번째 경우에는 ${$a}[1]을 사용하는 것입니다.