2011-10-03 9 views
2
$prefix = 'some'; 
$name_of_variable = $prefix.'_var'; 

그래서 변수 이름은 $some_var입니다.문자열에서 부분적으로 생성 된 변수의 값을 얻는 방법은 무엇입니까?

어떻게 값을 확인할 수 있습니까?

if($name_of_variable) ...

$name_of_variable의 값 대신 $name_of_variable의 값을 반환합니다.

+2

이것은 가변 변수라고하며 나쁜 습관으로 간주됩니다. 배열을 사용할 수 있는지 생각해보십시오. –

+1

비정상적인 변수 사용에 대한 컨텍스트를 알려 주시면 올바른 해결책을 알려 드릴 수 있습니다. –

+0

그래야 올바른 배열을 사용할 수 있습니다. 실제로 나는 배열을 가지고 있지만 변수를 생성하기 위해 추출을 사용했기 때문에 어떻게 든 변수를 검사 할 수 있다고 생각했습니다 ... – Alex

답변

8

Variable variables. 그러나 당신은 그들을 사용하고 싶지 않습니다. 디버깅이 불가능한 코드를 만듭니다. 그들은 거의 항상 나쁜 디자인의 징표입니다.

-1

문자열에서 변수를 작성해야 할 때 일반적으로 사용되는 변수. 예를 들어 $ _POST 키를 값으로 변수로 변환합니다.

$allowed_var = array('name',..); 
foreach($_POST as $key => $value 
{ 
    if(isset($allowed_var[$key])) 
     ${$key} = $value; 
} 
... 
+0

이것은 서언 변수 변수보다 100 배 더 나쁜 것으로, 사이트의 빈약 한 크기에 구멍을 만듭니다 타이타닉이 가지고 있었다. –

+0

데모 용으로 만 사용하십시오! , 생성 된 변수의 이름이 허용되는지 확인하려면 배열을 추가할까요? 우리가 사용하는 모든 기법에는 보안 계층이 있어야합니다. – shox

3

부분적으로 문자열로 만든 변수를 사용하지 마십시오.
대신 배열을 사용하십시오.

$prefix = 'some'; 
$name_of_variable = 'var'; 
echo $array[$prefix][$name_of_variable]; 
관련 문제