如何在php中多次重新声明同一个类方法?

时间:2013-02-11 10:50:09

标签: php html database class

我的代码有问题。我有这样的代码:

<?php
     include('php/SelectHistory.php');
     include('php/SelectSmallHistoryUser.php');
     include('php/SelectSmallHistoryProject.php');
     include('php/SelectSmallHistoryFunctionality.php');

     $newHistoryRow = SelectHistory();

     echo "<table width='100%'>";

     if (count($newHistoryRow) > 0)
     {
         foreach ($newHistoryRow as $current)
         {
              $chosenUser = SelectSmallHistoryUser($current->userID);
              $chosenProject = SelectSmallHistoryProject($current->projectID);
              $chosenFunctionality = SelectSmallHistoryFunctionality($current->functionalityID);
              echo "<tr>";
              echo "<td>" . $chosenUser->fullName . " was busy with " . $chosenFunctionality->functionalityName . " on " . $chosenProject->projectName . " at " . $current->lastModifiedDate;
              echo "</tr>";
              unset($chosenUser);
              unset($chosenProject);
              unset($chosenFunctionality);
          }
      }
      else
      {
          echo "<tr><td>No History To Display.</td></tr>";
      }

      echo "</table>";
?>

我遇到的问题是在循环中,它声明了一个驻留在类中的方法。现在因为它正在处理来自数据库的数据,如果事物的数量超过一个,我得到一个“已经声明的类”错误。

有没有办法可以解决这个问题,还是有其他方法可以使用?

4 个答案:

答案 0 :(得分:1)

我猜一个新的。 $var = new SelectHistory();

答案 1 :(得分:1)

不是像上面那样创建对象,而是应该定义一个静态函数来获取所需的数据。您可以在不创建对象的情况下调用此函数。

SelectSmallHistoryUser::getData($current->userID);

使用循环创建对象是不可接受的。 Read more

答案 2 :(得分:1)

这是创建类的正确方法:

class TestClass {
    public $property;
    //some other properties
    function __construct($id) {
        $this->property=$id;
        //do some other stuff
    }
    //some other functions
}

创建类实例的正确方法是:

 $test = new TestClass($id);

注意__construct()函数和new关键字,然后再次尝试执行脚本。

答案 3 :(得分:0)

在循环中声明或包含类并不好。 但请检查一下:http://www.php.net/manual/en/function.class-exists.php