Я новичок в PHP. У меня есть функция, которая возвращает HTML-код другой моей функции. Этот HTML-код также содержит некоторый PHP-код. Проблема в том, что я не знаю, как добавить цикл for в этот HTML-код, а затем вернуть весь HTML-код.
например вот мой код:
<?php
class Dummy
{
public static function testing($data)
{
return '<div class = "dummy">name:' . $data['name'] . '</div>';
}
}
?>
Я хочу вставить в него, например, цикл foreach
<?php
class Dummy
{
public static function testing($data)
{
return '<div class = "dummy">name:' . $data['name'] . '</div>
<table>
foreach($data as $d){
<tr><td>hello</tr></td>
}
<table>
';
}
}
?>
К сожалению, я не заметил, что во втором классе есть foreach. Форматирование делает его похожим на HTML, и я его полностью отключил!
foreach() не является клиентским, и вы не можете передать его в виде строки.
@IsThisJavascript не беспокойтесь. хотя спасибо за ваше время






Вам нужно сначала построить строку с желаемым результатом. Затем верните эту строку
<?php
class Dummy
{
public static function testing($data)
{
$str = '<div class = "dummy">name:' . $data['name'] . '</div>
<table>';
foreach($data as $d){
$str .= '<tr><td>hello</td></tr>';
}
$str .= '</table>';
return $str;
}
}
?>
Обновите закрывающий тег для tr и table @B. Десаи
Я не вижу смысла foreach(). $d не используется
Я только что предоставил запрошенную демонстрацию OP. Может быть, он знает, как обновить его позже, чтобы использовать переменные foreach. @ Akintunde007
Рад помочь @mynameisbutt
У вас не может быть цикла for в таком операторе возврата. Вы должны создать переменную для хранения строки и создать ее внутри цикла, как в этом примере:
public static function testing($data) {
$html = '<div class = "dummy">name:' . $data['name'] . '</div>';
$html .= '<table>';
foreach($data as $d){
$html .= '<tr><td>hello</td></tr>';
}
$html .= '<table>';
return $html;
}
Однако я хотел бы отметить, что создание такого HTML-кода, как правило, является плохой идеей, и вам следует использовать язык шаблонов, который предоставляется в большинстве фреймворков.
В PHP синтаксис .= - это сокращение для конкатенации строки. Вы также можете использовать $html = $html . '<p>some other content</p>';.
Большое спасибо за подробный ответ.
создать перед возвращением
<?php
class Dummy
{
public static function testing($data)
{
$return='<div class = "dummy">name:' . $data['name'] . '</div><table>';
foreach($data as $d){
$return+='<tr><td>hello</td></tr>';
}
$return+='<table>';
return $return;
}
}
?>
Например, это можно сделать так.
<?php
class Dummy
{
public static function testing($data, $x)
{
$firstLine = '<div class = "dummy">X Value:' . $x . '</div>';
$firstLine .= '<div>';
$innerHtml = '';
foreach($data as $d) {
$innerHtml .= '<tr><td>hello '.$d['name'].'</td></tr>';
}
$innerHtml = '<table>'.$innerHtml.'</table>';
$lastLine = "</div>";
return $firstLine.$innerHtml.$lastLine;
}
}
$data[0]['name'] = "Nishant";
$data[1]['name'] = "Amit";
$data[2]['name'] = "Rachit";
echo Dummy::testing($data, "This is X Value");
?>
Я думаю, он хотел знать, как он может создавать динамический HTML-контент в цикле foreach и возвращать его. То же самое сделал я. Я взял разные переменные и объединил их, чтобы он мог лучше понять.
как вы думаете, вы даете более ясное объяснение своему коду?
Да, можно сказать, что я не давал объяснений :) Но Вопросник спросил то же самое.
Нет никаких объяснений того, как код будет работать. Стоит добавить объяснение, когда вы добавляете лишние строки по сравнению с тем, что спросил спрашивающий!
ну, мой вопрос в том, как я могу добавить цикл for в HTML-код, который встроен в PHP-код и не имеет ничего общего с классами