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