в любом случае, чтобы определить публичные или частные или защищенные классы в PHP - PullRequest
2 голосов
/ 08 февраля 2012

Есть ли способ создания открытых, закрытых или защищенных классов в пространстве имен, например, в java?

like ...

namespace foo;

public class Account {
  .......
}


private class PrivateAccount {
 .......
}

. Пожалуйста, дайте мне знать, есть ли обходной путь длясделать это в PHP.

Ответы [ 2 ]

3 голосов
/ 08 февраля 2012

Нет, классы в PHP не могут быть ничем иным, кроме общедоступных, и это объявляется неявно. Из PHP документов на классов в PHP5 :

Базовые определения классов начинаются с ключевого слова class, за которым следует имя класса, за которым следует пара фигурных скобок, которые содержат определения свойств и методов, принадлежащих классу.

Помещение ключевого слова видимости перед классом может привести к фатальной ошибке.

1 голос
/ 08 февраля 2012

Обычно вы объявляете конструктор класса private. Затем вы можете создать отдельную статическую функцию в классе, которая будет выполнять некоторые проверки (то есть проверять пространство имен) и условно возвращать экземпляр класса, вызывая закрытый конструктор. Это также типично способ реализации синглетонов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...