Можно (и нужно) повторно объявить методы с разными параметрами в PHP7? - PullRequest
0 голосов
/ 02 мая 2019

Я нахожусь в процессе модернизации огромного количества унаследованного кода PHP4. Я не очень хорошо разбираюсь в ООП (пока), но я застрял на работе.

В старом коде PHP4 у меня есть следующее:

class theParent {
  function greet () {
    return "Good morning";
  }
}

class theChild extends theParent {
  function greet ($inDaHood = FALSE) {
    if ($inDaHood)
      return "Yo! What up?\n";
    else
      return "Hello\n";
  }
}

В дочернем классе метод greet () повторно объявлен с параметрами, отличными от исходного метода greet () в родительском классе. Это было хорошо в PHP4 (который был по сути бесплатным для всех; у него даже не было частных методов). Он также работает в PHP7 без каких-либо ошибок.

Но это все еще рекомендуется) в PHP7? Или теперь есть более правильный способ сделать это?

1 Ответ

1 голос
/ 02 мая 2019

В этом нет ничего плохого. Вы просто перегружаете / переопределяете / все, что PHP-называет - это метод greet. Фактически, единственная общая черта, которую разделяют два метода, - это имя; Что касается PHP, то это две разные вещи.

...