Php 二维阵列上的Foreach不';不生产

Php 二维阵列上的Foreach不';不生产,php,class,multidimensional-array,foreach,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){

我在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
我是在做一些愚蠢的疏忽还是什么我没有看到的事情?这不会产生任何结果,它实际上是空的。没有错误,没有警告,没有通知,娜达

仅供参考:
$name
等变量之前都已初始化和设置,它们不为空。对于我做错了什么,我们将不胜感激。短暂性脑缺血发作

另外,我在
foreach
循环中使用了
current()
来回显它当时看到的内容,并且它看到了数据,所以我不知道为什么它实际上什么都不做

更新[已解决] 我不敢相信我错过了它,没有其他人抓到它,但这没关系,这是奇妙世界编码的一部分。我注意到它缺少一行来抓取正在构建的内部对象,从而解决了这个问题:

echo $obj->$thePage;

您需要
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;

确保错误报告和显示错误设置正确,并查看错误日志。PHP的白色页面输出通常表示错误。由于您的代码不完整,我无法对其进行测试。这已经足够了,我自己解决了它,谢谢您。虽然我几乎100%确定在使用类时这是不必要的,但我还是继续尝试了,以便能够肯定地说它没有做任何事情,谢谢您。我很高兴您让它工作起来。我不知道你说的“使用类时不必要”是什么意思,你指的是存储buildTable函数的结果还是回显它?看起来您的解决方案只是回显
$obj->buildTable($data)
。这就是我的基本意思,我想我不应该说“你需要存储它”,只是你需要在某个地方重复它。我很想了解您尝试了什么,以及为什么它不起作用。我的意思是,这个类,我应该更具体一些,不返回任何内容,只是在内部维护所有内容,所以我必须实际地
echo
输出其内部持有的变量。当然,情况并非总是如此。您的方法在逻辑上是合理的,只是不适用于这个特定的gizmo:)我最终意识到的是,没有一个函数实际返回类范围之外的任何内容,相反,它在内部将其附加到一个对象,在您完成所有需要的操作之后,它可能会使该对象和所有内容对您可用。这实际上是我很长时间以来见过的最糟糕的课程之一,但不幸的是,它被要求使用它。谢谢。因为你的想法和解决方案在精神上是一样的,我将继续并标记它,这样你就可以得到一些应得的东西,并让你的销售代表有点不高兴。
$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;