$$session_name게 맞는 표현인가요?
관련링크
본문
// 세션변수 생성
function set_session($session_name, $value)
{
if (PHP_VERSION < '5.3.0')
session_register($session_name);
// PHP 버전별 차이를 없애기 위한 방법
$$session_name = $_SESSION[$session_name] = $value;
}
영가트 세션선언함수를 보니 아래와 같이 되어 있엇습니다. 오류인지요?
$$session_name게 맞는 표현인가요?
답변 3
네 맞습니다
위와같은 변수를 가변변수라고 합니다
변수를 변수로 가져다 쓰는 형태의 변수라고 보시면 됩니다
$a = "hi";
$$a = "hahaha";
위와 같이 변수를 설정했다면 값을 확인해보시면 이해가 좀더 빠릅니다
echo $a; ======> hi
echo $$hi ======> hahaha
이런식으로 $a 에서 정의한 변수의 값을 변수로 만들어 버리는 것입니다
즉 $hi = "hahaha"; 이렇게 되버리는거죠
이러한 형태로 변수들을 응용해서 사용할 때 사용합니다
즉 $$session_name 의 값에는 $value의 값 자체를 변수로 가져오는게 되겟지요
맞는 표현입니다. 구어체로 겹달러 라고 쓰기도 하는데요 ^^; 정식명칭은 기억이 안나네요.
$session_name 을 인자로 받는 함수이기 때문에 (인자에는 $ 가 빠진 상태로 변수명만 들어오겠죠?)
만약 초기에 세션을 생성할때 세션명을 $user_sess 라고 선언했다면
함수에 인자에서는 "user_sess" 가 넘어올것이고
$ + ($session_name) -> $ + (user_sess) -> $user_sess 로 변수가 되게끔 만드는 표현법입니다.
두분다 감사합니다. 행복한 하루 되세요