가변 변수 (Variable variables)
때때로 가변 변수명을 갖을 수 있는것다는 것은 편리함을 준다.
즉, 변수명이 유동적으로 설정되거나 사용될수 있다.
가변 변수는 PHP의 슈퍼전역 배열로 사용될 수 없다.
${$_GET}와 같은 변수를 사용할수 없음을 의미한다.
슈퍼전역변수의 유효성과 구버전의 HTTP_*_VARS를 제어하는 방법을 원한다면, 그 변수들을 참조하려 할 것이다.
일반적인 변수는 다음과 같은 구문에 의해 설정된다:
가변변수는 변수값을 취해서 변수명으로 취급한다.
위 예제코드는, hello를 두개의 달러사인을 사용하여 변수명으로 사용할 수 있다.
이 지점에서 두 변수가 선언되었고 PHP 심볼 트리에 저장된다.
$a는 "hello" 값을 갖고 $hello는 "world" 값을 갖게 된다.
위 구문은 다음과 똑같이 출력된다.
즉, 둘다 hello world를 출력한다.
배열을 갖는 가변변수를 사용하기 위해서는 애매한 문제를 해결해야 한다.
즉, $$a[1]를 쓴다면 해석기는 $a[1]이 변수를 의미하는지 알 수 있어야 한다.
( ${$a[1]} 을 사용 )
또는 $$a가 변수이기를 바라고, [1]이 그 변수의 인덱스인지 알 수 있어야 한다.
( ${$a}[1] 을 사용 )
때때로 가변 변수명을 갖을 수 있는것다는 것은 편리함을 준다.
즉, 변수명이 유동적으로 설정되거나 사용될수 있다.
가변 변수는 PHP의 슈퍼전역 배열로 사용될 수 없다.
${$_GET}와 같은 변수를 사용할수 없음을 의미한다.
슈퍼전역변수의 유효성과 구버전의 HTTP_*_VARS를 제어하는 방법을 원한다면, 그 변수들을 참조하려 할 것이다.
일반적인 변수는 다음과 같은 구문에 의해 설정된다:
<?php
$a = "hello";
?>
$a = "hello";
?>
가변변수는 변수값을 취해서 변수명으로 취급한다.
위 예제코드는, hello를 두개의 달러사인을 사용하여 변수명으로 사용할 수 있다.
<?php
$$a = "world";
?>
$$a = "world";
?>
이 지점에서 두 변수가 선언되었고 PHP 심볼 트리에 저장된다.
$a는 "hello" 값을 갖고 $hello는 "world" 값을 갖게 된다.
<?php
echo "$a ${$a}";
?>
echo "$a ${$a}";
?>
위 구문은 다음과 똑같이 출력된다.
<?php
echo "$a $hello";
?>
echo "$a $hello";
?>
즉, 둘다 hello world를 출력한다.
배열을 갖는 가변변수를 사용하기 위해서는 애매한 문제를 해결해야 한다.
즉, $$a[1]를 쓴다면 해석기는 $a[1]이 변수를 의미하는지 알 수 있어야 한다.
( ${$a[1]} 을 사용 )
또는 $$a가 변수이기를 바라고, [1]이 그 변수의 인덱스인지 알 수 있어야 한다.
( ${$a}[1] 을 사용 )
WRITTEN BY
- 손가락귀신
정신 못차리면, 벌 받는다.
,