2011-08-02 6 views
1

나는이 작업을 수행 얻으려고,PHP 변수와 세션 문제

$m1 = $_SESSION[m1]; 
..... 

를 사용하여이 루프에 대해 다음

for ($i = 1; $i < 9; $i++) { 
$m . $i = $_SESSION['m' . $i]; 
} 

내가 잘못 여기서 무엇을하고있는 중이 야?

감사합니다.

+0

아마도 다음을 사용할 수 있습니다. $ _GLOBALS [ 'm'. $ i] = $ _SESSION [ 'm'. $ i]; – schmunk

답변

3

귀하의 $m . $i가 유효하지 않습니다 : 당신이 사용해야하는 대신 : 기본적으로 ${'m' . $i}

:

  • 첫째, 당신이 당신의 변수의 이름 구성 : 'm' . $i
  • 을 그리고, 그런 다음이 이름을 가진 변수에 액세스하려고 시도합니다. ${ 'm' . $i }


당신은 또한 다음과 같은 구문을 사용할 수 있습니다 물론,

$variableName = 'm' . $i; 
$$variableName = 'your-value-here'; 


을 그리고, PHP 설명서 참조 : Variable variables.

+0

이 PHP 기능을 사용하지 않는 목표를 성취 할 수있는 좋은 방법이있을 수 있습니다. 따라서 [arrays] (http://php.net/manual/en/language.types.array.php)를 사용하십시오. – Legolas

+0

OP가 정확히 필요한지 여부에 따라 실제로 옳을 수도 있습니다. –

0

for ($i = 1; $i < 9; $i++) { 
    ${'m' . $i} = $_SESSION['m' . $i]; 
} 

$m. $i 2 개 변수 ($m$i)의 값 CONCAT하고 할당하는 변수로서 사용할 수없는 시도.

Anyway, Why you don't use an array?

+0

이 오류가 발생합니다 : 정의되지 않은 상수 m을 사용합니다. – Ajay

+0

에서 'm'이라고 가정하면 따옴표를 잊어 버렸습니다. 죄송합니다. 편집 된 – RiaD

+0

해결책은 m 주변에서 인용 부호를 사용하지 않아 포스터가 이미 이것을 수정했습니다. – Legolas

0

부분 $m . $i이 문제입니다. 다른 대답 (${'m' . $i})이 제안하는 것처럼이 작업을 수행하는 방법이 있지만 권장하지는 않습니다.

어떻게 사용 하시겠습니까? 배열로이 작업을 수행 할 수 있습니까? 따라서, $m[$i]$m[1]을 얻기 위하여 등

+0

이전 배열보다이 배열을 사용하면 얻을 수있는 이점을 알 수 있습니다. – Ajay

+0

배열은 변수 목록으로 의미합니다. 예를 들어, 배열의 길이를 요청할 수 있으며 거기에 어떤 요소가 있는지 확인할 수 있습니다. 반면에이 메서드를 사용하면 정확한 이름을 알고 별도로 추적해야합니다. 또한 배열 (또는 다른 프로그래밍 언어에서와 같이 목록 및 사전)은 거의 모든 언어로 존재하는 전통적인 프로그래밍 개념입니다. 또한 (연관) 배열을 사용하여 이러한 "가변 변수"를 사용하여 수행 할 수있는 모든 것을 달성 할 수 있습니다. – Legolas

+0

고마워, 지금은 배열을 구현하려고 해요, 당신은 여기서 도와 줄 수 있습니다 $ _SESSION [ '$ m [$ i]'] = clean ($ _ POST [m [$ i]); 여기서 내가 뭘 잘못하고 있니? 나는 이것을 $ _SESSION [ '$ m [1]'] = clean ($ _ POST [m [1]);으로 원한다. – Ajay

0

는 또한 -이 화제의 밖으로 조금이다 - [ 'M1']

대신

$ _SESSION를 작성하는 습관 만들기

$ _SESSION [m1]

언젠가는 이상한 오류가 발생할 수 있습니다.