我刚开始使用OOP,所以这是我的第一步。
我正在尝试构建一个简单的预订系统,用户可以在其中预订另一个用户通过日历创建的时隙。我处于该项目的早期阶段,因此尚未建立数据库,而我目前正在摆弄一天课程和一个时隙课程,并试图弄清楚如何使它们交互。
这是我的代码:
class dayCL {
public $dayInMonth;
public $numBookingSlotsOnDay;
public function __construct($dayInMonth) {
$this->dayInMonth = $dayInMonth;
}
public function getNumBookingSlotsOnDay(){
return "Booking slots: " . $this->numBookingSlotsOnDay;
}
public function numBookingSlotsOnDay(){
$this->numBookingSlotsOnDay = $this->numBookingSlotsOnDay + 1 ;
}
};
class bookingSlotCL {
public $startTime;
public function __construct($startTime) {
$this->startTime = $startTime;
}
public function output(){
return "Start: " . $this->startTime;
}
};
该numBookingSlotsOnDay
函数在被调用时按预期工作,但是可以在中集成对它的调用bookingSlotCL
,因此在每次实例化时都调用它bookingSlotCL
吗?
例子:
$day1 = new dayCL(1);
$bookingSlot1 = new bookingSlotCL(1);
$bookingSlot2 = new bookingSlotCL(1);
两个预订位均已放置,$day1
因此$day1->getNumBookingSlotsOnDay
应返回“ 2”。
日历的设计使所有天都可以实例化为一个dayCL
实例,这意味着一个bookingSlotCL
实例将始终具有dayCL
要附加的实例。
您应该将所有bookingSlotCL
实例添加到实例中的数组中,dayCL
如下所示:
$day1 = new dayCL(1);
$day1->addBooking(new bookingSlotCL());
该addBooking
方法可能如下所示:
public function addBooking(dayCL $day) {
$this->days[] = $day;
$day->startTime = $this->dayInMonth
}
这样,您甚至可以更改getNumBookingSlotsOnDay
方法来动态确定预订位的数量:
public function getNumBookingSlotsOnDay() {
return count($this->days);
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句