Php foreach循环中的Html

时间:2018-03-19 10:41:06

标签: php html loops

我是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>

';


        }
    }
    ?> 

4 个答案:

答案 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");
     ?>