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

2行を次のように変更します。

$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 に答える