Это составленный пример, он становится намного более полезным, когда есть много параметров.Возможно ли создание цепочек перегрузки в PHP?
Это позволит использовать вызывающий абонент либо new Person("Jim", 1950, 10, 2)
, либо new Person("Jim", datetimeobj)
. Я знаю о дополнительных параметрах, это не то, что я ищу здесь.
В C# я могу сделать:
public Person(string name, int birthyear, int birthmonth, int birthday)
:this(name, new DateTime(birthyear, birthmonth, birthday)){ }
public Person(string name, DateTime birthdate)
{
this.name = name;
this.birthdate = birthdate;
}
Могу ли я сделать подобную вещь в PHP? Что-то вроде:
function __construct($name, $birthyear, $birthmonth, $birthday)
{
$date = new DateTime("{$birthyear}\\{$birthmonth}\\{$birthyear}");
__construct($name, $date);
}
function __construct($name, $birthdate)
{
$this->name = $name;
$this->birthdate = $birthdate;
}
Если это невозможно, что является хорошей альтернативой?
@phpdev аналогичная идея, но нет. Вызов другого конструктора того же класса. О, ты ушел, ну теперь я просто чувствую себя неловко ... –