2D阵列上的Foreach不会产生输出

时间:2016-04-29 02:35:30

标签: php class multidimensional-array foreach

我在PHP类中有一个函数,其内容如下:

  //properties
  var $title;
  var $thePage;

      function gBuildTable($theArray){
        //given a 2D array, builds an HTML table based on that array
        $table = "<table> \n";
        foreach ($theArray as $row){
          $table .= "<tr> \n";
          foreach ($row as $cell){
            $table .= "  <td>$cell</td> \n";
          } // end foreach
          $table .= "</tr> \n";
        } // end foreach
        $table .= "</table> \n";

        return $table;
      } // end gBuildTable

      function buildTable($theArray){
        $temp = $this->gBuildTable($theArray);
        $this->addText($temp);
      } // end buildTable

      function addText($content){
        //given any text (including HTML markup)
        //adds the text to the page
        $this->thePage .= $content;
        $this->thePage .= "\n";
      } // end addText

      function gAddText($content){
        //given any text (including HTML markup)
        //returns the text
        $temp= $content;
        $temp .= "\n";
        return $temp;
      } // end addText

那么我有一堆数据可以构建成2D数组(希望它的结构正确):

    $data = array(
        array("Name", $name),
        array("Email", $email),
        array("Hobby", $hobby),
        array("", $stamp)
    );
    $obj = &New sH;   //the class name
    $obj->buildTable($data);

我是否进行了一些愚蠢的疏忽或者我没有看到的东西?这不会产生任何东西,它可以回来空。没有错误,没有警告,没有通知,NADA。

仅供参考:$name等变量以前都已初始化并设置,它们不是NULL。对于我做错了什么的任何帮助,将不胜感激。 TIA

PS。我在current()循环中使用foreach来回显它当时看到的内容,并且它看到了数据,所以我不知道为什么它实际上没有做任何事情。

更新[SOVLED]

我无法相信我错过了它,没有其他人抓住它,但它可以,是编码的精彩世界的一部分。我通过注意到它缺少一行来获取正在构建的内部对象来解决它:

echo $obj->$thePage;

1 个答案:

答案 0 :(得分:1)

您需要echo $table;功能..!

或存储函数返回的值并在主代码中回显。

$data = array(
    array("Name", $name),
    array("Email", $email),
    array("Hobby", $hobby),
    array("", $stamp)
    );

$obj = &New sH;   //the class name
$table = $obj->buildTable($data);
echo $table;