我的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()
无效。
怎么回事?
答案 0 :(得分:5)
将两行更改为:
$fair1 = $fair->getFair($first_fair_id); // <-- works till here
$floorplan = $fair->getFloorplan($first_fair_id); // <-- This is where it breaks
你在变量$ fair中获得了getFair()的结果,该变量与对象的名称相同。所以它只是重写。