0

我的 php 页面中有以下代码:

  $fair           = Factory::new_fair_obj();
  $fairs          = $fair->getAllFairs();
  $fairs_ddl      = createFairDDL($fairs);
  $first_fair_id  = $fairs[0]['id'];
  $fair           = $fair->getFair($first_fair_id);  // <-- works till here
  $floorplan      = $fair->getFloorplan($first_fair_id);  // <-- This is where it breaks

这是扩展 DAO 的业务类:

interface iFair {
  public function getAllFairs();
  public function getFair($id);
  public function getFloorplan($id);
}

class Fair extends FairDAO implements iFair {
  protected $db;

  function __construct(&$db) {
    $this->db = $db;
  }
  public function getAllFairs(){
    return parent::getAllFairs();
  }

  public function getFair($id){
    return parent::getFair($id);
  }

  public function getFloorplan($id){
    return parent::getFloorplan($id);
  }
}

通话getFair()效果很好。但是调用getFloorplan()下一行是行不通的。

怎么来的?

4

1 回答 1

5

将两行更改为:

$fair1           = $fair->getFair($first_fair_id);  // <-- works till here
$floorplan      = $fair->getFloorplan($first_fair_id);  // <-- This is where it breaks

您将在变量 $fair 中获得 getFair() 的结果,该变量与对象的名称相同。所以它只是被覆盖了。

于 2012-07-23T22:37:00.727 回答