#php
#php
Вопрос:
Я должен передать содержимое сообщения в метод, чтобы оно было правильно размещено в WordPress. Весь размещенный контент будет помещен в переменную $content, которая передается методу. Как я могу получить содержимое цикла foreach в переменную $content?
<?php
$return = '';
foreach ($response['daily']['data'] as $cond) {
echo '<br /><br /><strong>' . date('l, F j, Y', $cond['time']) .'</strong><br />
<div id="dailysummary"><br />Daily Summary: ' . $cond['summary'] . '<br /><br /></div>
<table style="border:1px solid #ccc">
<tr>
<td>
High
</td>
<td>
'.round($cond['temperatureMax']).'
</td>
</tr>
<tr>
<td>
Low
</td>
<td>
'.round($cond['temperatureMin']).'
</td>
</tr>
<tr>
<td>
Chance of precip.
</td>
<td>
'.round($cond['precipProbability']).'%
</td>
</tr>
<tr>
<td>
Wind speed
</td>
<td>
'.round($cond['windSpeed']).' mph
</td>
</tr>
<tr>
<td>
Dewpoint.
</td>
<td>
'.round($cond['dewPoint']).'
</td>
</tr>
<tr>
<td>
Humidity
</td>
<td>
'.round($cond['humidity']).'
</td>
</tr>
</table>
<br /><br />';
}
Комментарии:
1. @nogad OP также может заслужить репутацию в других темах и языках программирования.
2. @nogad Да, я этого тоже не понимаю. Похоже, он новичок в PHP, и большинство его замечаний исходят из ASP.NET и C #, но конкатенация — это одно и то же на каждом языке, который я знаю
3. конечно, это разные языки, но вы должны знать слова в Google? @Rizier123
4. @nogad Да, это верно, даже не имея никакой репутации 🙂 Но сама по себе репутация не говорит о том, в каких темах OP хорош.
5. я надеюсь, что представитель скажет: «Я знаю, как работают компьютеры, И я могу использовать Google» 😉
Ответ №1:
Либо создавать переменные, а не повторять:
$html = '';
foreach(...) {
$html .= '... build html here...';
}
Или сохраните ваш текущий код и используйте буферизацию вывода:
ob_start();
foreach(...) {
echo '... html goes here ...';
}
$html = ob_get_clean();
Нет правильного / неправильного способа сделать это. В любом случае вы получите фрагмент html в памяти.
Ответ №2:
Сделайте это:
$content = "";
foreach ($response['daily']['data'] as $cond) {
$content .= '<br /><br /><strong>' . date('l, F j, Y', $cond['time']) .'</strong><br />
[...]
Вы создадите пустую строку и добавите к ней больше текста в каждом цикле.
Ответ №3:
Вот так — используя .=
operator:
$content = '';
foreach ($response['daily']['data'] as $cond) {
$content .= '<br /><br /><strong>' . date('l, F j, Y', $cond['time']).'</strong><br />
<div id="dailysummary"><br />Daily Summary: ' . $cond['summary'] . '<br /><br /></div>
<table style="border:1px solid #ccc">
... ';
}
print $content;