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

Я посмотрел на руководство, но я, может казаться, не нахожу ответ.

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

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

class test {
  function go() {
  }
}

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

113
задан kiamlaluno 30 December 2016 в 15:18
поделиться

3 ответа

По умолчанию - public.

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

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

172
ответ дан 24 November 2019 в 02:42
поделиться

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

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

21
ответ дан 24 November 2019 в 02:42
поделиться

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

8
ответ дан 24 November 2019 в 02:42
поделиться
Другие вопросы по тегам:

Похожие вопросы: