2011-10-23 6 views
1

を上書きしますそのファイルのほとんどの場合、それぞれの "エコー"は新しいエコーによって上書きされているようです。私は明らかに正しくこれをやっていない。なぜそれが機能していないのですか、それを私が意図した通りに実行するにはどうしたらいいですか?エコーは現在、私はこれをやっている、前のエコー(PHP)

+1

私はあなたのpythonの背景から来ていると思いますか? –

+2

@code_burgarその場合、彼のインデントは正しいでしょう;) – NikiC

答えて

6

コードでは、3行目のみがループの一部です。あなたがループ内で両方のステートメントを持っているしたい場合は、ブロックを作成する必要があります。

foreach ($lines as $value) { 
    list($title, $location) = explode("|", $value); 
    echo '<div id="entry"><a href="'.$location.'">'.$title.'</a></div>'; 
} 

さらに、PHPでHTMLをINGのechoは避けるべきです。 PHPをHTMLに埋め込む必要があります。これにより、コード、特にHTMLマークアップが維持しやすくなり、エラーが発生しにくくなります。

リファレンスforeach

+0

ありがとう、私はそれを逃したとは思わない。私はPHPを初めて使う人 – n0pe

+0

@MaxMackie:この問題はPHPに固有の問題ではありません。それは他のほとんどの "Cベース"言語でも同じです。 –

+5

私は、HTML自体が悪いスタイルであるというエコーには同意しません。 –

4

中括弧{}が必要です。それらがなければ、ループの後に次の行だけが繰り返されます。したがって、あなたのリスト()だけが繰り返し処理されています。

foreach ($lines as $value) 
{ // <-- Important 
    list($title, $location) = explode("|", $value); 
    echo '<div id="entry"><a href="'.$location.'">'.$title.'</a></div>'; 
} // <-- Important 
+0

次の*ステートメント。セミコロンを間違えて入力した場合、同じ行にある可能性があります)。 – toon81

3

あなたが持っている:

foreach ($lines as $value) 
list($title, $location) = explode("|", $value); 
echo '<div id="entry"><a href="'.$location.'">'.$title.'</a></div>'; 

のみを一覧表示部分は、foreachループです。あなたが必要です:

foreach ($lines as $value) 
{ 
    list($title, $location) = explode("|", $value); 
    echo '<div id="entry"><a href="'.$location.'">'.$title.'</a></div>'; 
} 
+0

ack!今まで他の答えは見られなかった。 _edit:フェリックスキングの解答+1 – toon81

関連する問題