2011-05-04 9 views
2

이것이 가능한지 확실하지 않지만 매번 하나씩 증가하는 카운터 변수가 있습니다. 이제 카운터 위에 몇 개의 변수가 생겼습니다. 나는 카운터 변수를 증가시키는 변수 뒤의 숫자를하고자하는 카운터 안에 지금 php 변수를 사용하여 변수를 만듭니다.

$var1=... 
$var2=... 
$var3=... 

...

그래서

for ($counter = 1; $counter <= 3; $counter += 1) { 
    $var=$var$counter; 
} 

처럼 내가 원하지 않는 것은 문자열입니다 카운터 변수가 하나씩 올라갈 때마다 변수를 변경하기 만하면됩니다.

답변

1

문자열이 없음을 의미하는 것이 확실하지 않지만이 작업을 수행해야합니다.

for ($counter = 1; $counter <= 3; $counter += 1) { 
    $varName = 'var' . $counter; 
    $var=$$varName; 
} 

하지만 다른 방법 (배열)을 대신 사용해야한다는 데 동의합니다.

+0

훌륭해, 완벽하게 작동합니다. –

2

variable variable이라고합니다. 하나를 사용할 생각이라면 언제든지 배열을 사용해야한다는 것을 깨달으십시오.

+0

이것은 훌륭한 코멘트 일 것입니다. – mario

+0

고맙습니다.하지만 지금 웹 사이트에서 얻은 코드 중 일부를 바꾼 경우 배열을 사용할 수 없습니다. 변경하기 전에 테스트 해보고 싶습니다. –

+0

@mario - @mario 이 질문에 답하는 방법은 설명 된 문서에 링크되어 있기 때문에 답변을 구할 수 있습니다. – Quentin

1

무엇을하려고합니까?

원하는 것을 얻기 위해 배열을 사용하는 것이 나을 것 같아서 묻습니다. 그럼 당신은 같은 것을 할 수있는 : 당신은 그렇게 할 수

for ($counter = 1; $counter <= 3; $counter += 1) { 
    $var[$counter] = $value; 
} 
0

을, 그러나 그것은을하지 않는 것이 좋습니다 입니다.

그것은 다음과 같습니다

for ($counter = 1; $counter <= 3; $counter += 1) { 
    $var = ${'var' . $counter}; 
} 
+0

이것은 작동하지 않습니다. $ var를 아직 존재하지 않는 변수의 값으로 설정하고 있습니다. 대신 $ var와 동일한 이름의 새 변수를 만들려고합니다. 내가 대답 한 것처럼 대입 연산자를 뒤집어 써야합니다. – BraedenP

+0

@BraedenP - 당신은 새로운 것을 오늘 배워야합니다. PHP는 느슨한 입력 언어입니다. 젊은 Skywalker를 배워보십시오.이것은 당신의 빵과 버터입니다! –

0

당신이 해당 코드를 변경할 수 있습니다 :

for ($counter = 1; $counter <= 3; $counter += 1) { 
    ${"var".$counter} = $var; 
} 

동적 변수 이름을 생성하는 데 사용할 수 있습니다 괄호로 문자열을 포장을 따라서 단순히 "var"를 카운터 값과 연결 한 다음이를 새 변수 이름으로 사용하십시오.

그러나 이렇게하면 모든 변수가 만들어지고 초기화됩니다 ...이 예제에서 $ var, $ var1 및 $ var2는 모두 같은 값이됩니다 . 이것이 원하는 것이 아니면 원하지 않는 변수를 모두 해제해야합니다().

그러나 이것은 대부분의 경우 "권장 사항"이 아닙니다. 왜 그렇게해야하는지 물어봐도 될까요? 아마도 배열이 더 적합 할 것입니다.

관련 문제