Я посмотрел на руководство, но я, может казаться, не нахожу ответ.
Какова видимость по умолчанию в PHP для методов без объявления видимости? PHP имеет видимость пакета как в Java?
Например, в следующем коде, go()
общедоступный или частный?
class test {
function go() {
}
}
Причина, которую я спросил, состоит в том, что я видел, что многие конструкторы кодируют записанный как function __construct()
и некоторые как public function __construct()
. Действительно ли они эквивалентны?
По умолчанию - public.
Методы класса могут быть определены как public, private или protected. Методы, объявленные без явного ключевого слова visibility, определяются как public.
По умолчанию публично. Рекомендуется всегда включать его, однако PHP4 поддерживает классы без модификаторов доступа, поэтому их использование в устаревшем коде обычно не наблюдается.
И нет, PHP не имеет видимости пакетов, главным образом потому, что до недавнего времени у PHP не было пакетов.
По умолчанию - общедоступный. Причина, вероятно, в обратной совместимости, поскольку старый код предполагает, что он будет общедоступным (он перестал бы работать, если бы он не был общедоступным).