【问题标题】:Is it possible to have a PHP variable as a table?是否可以将 PHP 变量作为表格?
【发布时间】:2017-09-08 07:05:13
【问题描述】:

是否可以将 PhP 中的变量定义为表格?即

$table1 = <table style="width:100%">
               <tr>
                  <th>Firstname</th>
                  <th>Lastname</th> 
                  <th>Age</th>
               </tr>
               <tr>
                   <td>Jill</td>
                   <td>Smith</td> 
                   <td>50</td>
               </tr>
               <tr>
                    <td>Eve</td>
                    <td>Jackson</td> 
                    <td>94</td>
               </tr>
          </table>
;

或者有什么特别的方法可以达到同样的效果吗?

【问题讨论】:

  • 你到底想达到什么目的?有Arrays,这是我能想象到的最接近一张桌子的照片。
  • 您需要将 存储到 '' 然后 echo $table1
  • 是的,因为您的“表格”只是一个文本(字符串)。
  • @DB 我想要来自 Mysql 数据库的动态表

标签: php


【解决方案1】:

我认为你混淆了两件事:

  • 一个列表数据结构,其中每个元素都具有属性firstnamelastnameage
  • 一种表示列表的方式,例如表格。在这种情况下,使用 HTML 标记语言的表格。

您可以使用array(),为每个元素使用带有键值对的array()。但最好采用面向对象的方法。

您首先需要从数据库中构造数据对象,然后用它们填充一个数组:

class Person {

    private $firstname;
    private $lastname;
    private $age; // It's better to pass a birthdate.

    public function __construct($firstname, $lastname, $age) {
        $this->firstname = $firstname;
        $this->lastname = $lastname;
        $this->age = $age;
    }
}
$persons = array();

foreach ($someResultingRowFromDatabase as $row) {
    $persons[] = new Person($row['firstname'], $row['lastname'], $row['age']);
}

我不知道从数据库中获取数据的确切代码,但您应该使用 PDO。

然后遍历 $persons 数组和 Person 对象并编写 HTML 表格。

【讨论】:

    【解决方案2】:

    如果你想要一个静态表作为 PHP 变量,你可以像这段代码一样在单引号 (') 中插入...

    $table1 = '<table style="width:100%">
                  <tr>
                    <th>Firstname</th>
                    <th>Lastname</th> 
                    <th>Age</th>
                  </tr>
                  <tr>
                    <td>Jill</td>
                    <td>Smith</td> 
                    <td>50</td>
                  </tr>
                  <tr>
                    <td>Eve</td>
                    <td>Jackson</td> 
                    <td>94</td>
                  </tr>
                </table>';
    

    如果您想要动态表列此代码将起作用...使用连接运算符....

    $table1 = '<table style="width:100%">
              <tr>
                <th>Firstname</th>
                <th>Lastname</th> 
                <th>Age</th>
              </tr>';
    foreach($array as $val){
        $table1 .= '<tr>
                    <td>'.$val['fname'].'</td>
                    <td>'.$val['lname'].'</td> 
                    <td>'.$val['age'].'</td>
                  </tr>';
    }
    $table1 .= '</table>';
    echo $table1;
    

    【讨论】:

      【解决方案3】:

      您要查找的不是表,而是Array。数组基本上是一组带有索引的数据。数据元素本身也可以是数组。您的结构本身看起来像这样的数组:

      $array = 
      [
          [
              "Firstname" => "Jill",
              "Lastname" => "Smith",
              "Age" => 50
          ],
          [
              "Firstname" => "Eve",
              "Lastname" => "Jackson",
              "Age" => 94
          ],
      ];
      

      您现在有一个变量,其中包含结构化形式的数据,您可以使用 forforeach 循环遍历它。如果您的数据存储在 MySQL 数据库中,您可以查看this example on php.net。这解释了如何从您的数据库中获取数据到一个数组(不是示例末尾的 $actor 变量)。

      【讨论】:

        【解决方案4】:

        你可以使用heredoc字符串

         $table1 = <<<EOD
        <table style="width:100%">
                                      <tr>
                                        <th>Firstname</th>
                                        <th>Lastname</th> 
                                        <th>Age</th>
                                      </tr>
                                      <tr>
                                        <td>Jill</td>
                                        <td>Smith</td> 
                                        <td>50</td>
                                      </tr>
                                      <tr>
                                        <td>Eve</td>
                                        <td>Jackson</td> 
                                        <td>94</td>
                                      </tr>
                                    </table>
        EOD;
        

        【讨论】:

          【解决方案5】:

          请试试这个

          $table1 = '<table style="width:100%">
                         <tr>
                            <th>Firstname</th>
                            <th>Lastname</th> 
                            <th>Age</th>
                         </tr>
                         <tr>
                             <td>Jill</td>
                             <td>Smith</td> 
                             <td>50</td>
                         </tr>
                         <tr>
                              <td>Eve</td>
                              <td>Jackson</td> 
                              <td>94</td>
                         </tr>
                    </table>'
          ;
          
          echo $table1;
          

          【讨论】:

            【解决方案6】:

            你成功了!)你把表放到变量中。但认真地,您尝试将两件事合二为一:数据和视图。这是一种非常错误的编程方式。

            【讨论】:

              猜你喜欢
              • 2023-04-08
              • 1970-01-01
              • 2021-12-25
              • 1970-01-01
              • 1970-01-01
              • 2014-09-20
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多