Видимость по умолчанию методов класса в PHP


Я посмотрел на инструкцию, но я не могу найти ответ.

какова видимость по умолчанию в PHP для методов без объявления видимости? Имеет ли PHP видимость пакета, как в Java?

например, в следующем коде, составляет go() государственные или частные?

class test {
  function go() {
  }
}

причина, по которой я спросил, заключается в том, что я видел много конструкторов кода, написанного как function __construct() до public function __construct(). Они эквивалентны?

4 96

4 ответа:

значение по умолчанию-public.

методы класса могут быть определены как public, private, или protected. Методы, объявленные без явного ключевого слова visibility, определяются как public.

http://www.php.net/manual/en/language.oop5.visibility.php

значение по умолчанию-public. Рекомендуется всегда включать его, однако поддерживаемые классы PHP4 без модификаторов доступа, поэтому обычно их не используют в устаревшем коде.

и нет, PHP не имеет видимости пакетов, главным образом потому, что до недавнего времени PHP не имел пакетов.

значение по умолчанию-Public. Причина, вероятно, заключается в обратной совместимости, поскольку старый код ожидает, что он будет общедоступным (он перестанет работать, если он не будет общедоступным).

видимость по умолчанию является общедоступной

источник