2011-07-26 17 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_ENCAPSED_AND_WHITESPACE、T_STRINGまたはT_VARIABLEまたはT_NUM_STRINGを予期しています –

+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を渡す必要があります。この場合、配列refまたはecho構造が渡されます。

は時間とメモリを節約するために、代わりにこれを試してみてください。

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

エコーは列で区切られた複数の引数を取ることができます。これにより、連結によって消費される時間とメモリが節約されます。短期間ではあまり節約されませんが、時間の経過とともに改善が加わります。連結されているものと、出力に渡されているものとの間の混乱を軽減します。

+0

これはコメントでなければなりませんが、ミックス内に変数がある場合はカンマが速くなります。 'echo' aaaa '、' aaaa '、' aaa ';' echo 'aaaa'、 'aaaa'、 'aaa' – AlienWebguy