我是PHP的新手。我有一个函数,它返回一个HTML代码到我的其他函数。 HTML代码中也包含一些PHP代码。问题是我不知道如何在该HTML代码中添加for循环然后返回整个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>
';
}
}
?>
答案 0 :(得分:4)
您需要首先使用所需的outout构建字符串。然后返回该字符串
<?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;
}
}
?>
答案 1 :(得分:1)
你不能在返回语句中真正拥有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>';
。
答案 2 :(得分:0)
返回前创建
<?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;
}
}
?>
答案 3 :(得分:-3)
举个例子,你可以这样做。
<?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");
?>