Ben düzgün sınıfları kullanıyorum emin olmak isteyen. Ana betik kullanıcı bu kabul eder:
1. month
2. year
3. the type of event they want to find (microsoft or linux)
For the program to find a microsoft event it has to run the regular expression: '(ID=)+[0-9]+' For the program to find a linux event it has to run the regular expression: '(ID=)+[A-F]+'
Bir olaylar sınıfı oluşturma kodunu düzenlemek için mantıklı bir yol gibi görünüyor. Ben ana komut mümkünse gelen sınıfa gereken normal ifadeyi göndermek istemiyorum. Ben bir Microsoft veya Linux olay ise olaylar sınıfını anlatmak ve sınıf olay her tür sınıfında önceden tanımlanmış olan değişkenlere dayalı işlenmiş verileri döndürmek izin vermek istiyorum.
Ben kodu olarak yazılır mevcut adres:
class Events
{
var $month;
var $year;
var $event_identifier_expression;
public function events($month, $year)
{
$this->month = $month;
$this->year = $year;
return $this->event_identifier_expression.$month.$year;
}
}
Ben yerine Etkinlikler sınıfta birden fazla statik yardımcı yöntemler gibi bir şey kullanmak istiyorum. Ben aşağıda kod varolan kodunu değiştirirseniz, beni sınıf dışında bağımsız microsoft_events ve linux_events aramak için, ve bu sınıf oluşturmak için doğru bir yoldur sağlayacak? (Sınıfın dışında statik işlevleri çağırmak için örnek kod takdir):
class Events
{
public function __construct()
{var $month;
var $year;
var $event_identifier_expression;
}
public static function microsoft_events($month, $year)
{
$this->month = $month;
$this->year = $year;
$this->event_identifier_expression = '(ID=)+[0-9]+';
return $this->event_identifier_expression.$month.$year;
}
public static function linux_events($month, $year)
{
$this->month = $month;
$this->year = $year;
$this->event_identifier_expression = '(ID=)+[A-F]+';
return $this->event_identifier_expression.$month.$year;
}
}