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