2011-07-26 5 views
1

나는 문자열에이 변수를 캡슐화 할,하지만 난 항상 오류가 발생합니다 :이 변수를 문자열로 캡슐화하는 방법은 무엇입니까?

for($i = 0; $i < $_POST['rows']; $i++) { 
    echo "<tr>" 
    for($j = 0; $j < $_POST['columns'] $j++) { 
     echo "<td>$_POST['row{$i}column{$j}']</td>"; // << I get an error. Please help me encapsulate this.. I'm so confused. 
    } 
} 

오류 :

Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING 
+0

무엇이 오류입니까 ?? –

+0

구문 분석 오류 : T_STRING 또는 T_VARIABLE 또는 T_NUM_STRING이 (가) 예상치 못한 T_ENCAPSED_AND_WHITESPACE 구문 오류입니다. –

+0

캡슐화하지 않음을 의미합니다. –

답변

5
for($i = 0; $i < $_POST['rows']; $i++) { 
    echo '<tr>'; 
    for($j = 0; $j < $_POST['columns'] $j++) { 
     echo '<td>' . $_POST['row' . $i . 'column' . $j] . '</td>'; 
    } 
    echo '</tr>'; 
} 
+0

that works! 감사합니다. –

2
for($i = 0; $i < $_POST['rows']; $i++) { 
    echo "<tr>" 
    for($j = 0; $j < $_POST['columns'] $j++) { 
     echo '<td>'.$_POST['row'.$i.'column'.$j].'</td>'; 
    } 
} 

은 그냥 함께 문자열을 연결. 운영자.

0

먼저 무엇을 놓치셨습니까? " echo "<tr>" 초 후에 누락되었습니다. ";" $_POST['columns']

후이 솔루션 질문에 대한 답변이되었습니다

for($i = 0; $i < $_POST['rows']; $i++) { 
    echo "<tr>"; 
    for($j = 0; $j < $_POST['columns']; $j++) { 
     echo "<td>{$_POST['row{$i}column{$j}']}</td>"; // << I get an error. Please help me encapsulate this.. I'm so confused. 
    } 
} 
0

,하지만 난 echo에 대한 작은 알려진 사실을 지적하고 싶습니다. 이 코드에서

echo '<td>' . $_POST['row'.$i.'column'.$j] . '</td>'; 

, 두 회씩 연결은

'행'일어나고있다. $ i. '열'. $ j 및

'< td>'입니다. $ _POST [...]. '</td>'

병합하려면 스택에 임시 변수를 만들고 값을 변수로 전달한 다음 temp var을 전달해야합니다.이 경우 배열 참조 또는 반향 구조가 전달됩니다.

시간과 메모리를 저장하려면, 대신에 이것을 시도 :

echo '<td>', $_POST['row'.$i.'column'.$j], '</td>'; 

에코 열로 구분 된 여러 인수를 취할 수 있습니다. 이렇게하면 연결에 소비되는 시간과 메모리를 절약 할 수 있습니다. 단기간에 많이 절약되지는 않지만 시간이 지남에 따라 개선 될 것입니다. 그리고 연결되는 것에 대한 길과 출력으로 넘어가는 것에 대한 혼란을 줄여줍니다.

+0

이것은 주석이어야합니다. 그러나 쉼표는 혼합에 변수가있는 경우에만 더 빠릅니다. echo 'aaaa', 'aaaa', 'aaa', 'aaaa', 'aaaa', ' – AlienWebguy

관련 문제