Я хочу узнать мнение людей об использовании статических классов вместо пространств имен. Я родом из C++, и мне очень нравится его синтаксис и то, как он позволяет вам структурировать код. Недавно я решил, что мне нужно сгруппировать свой код в логические блоки, а не просто в файлы. Например, я предпочитаю такие вызовы, как User::login, вместо user_login. Итак, я немного погуглил и с облегчением обнаружил, что в PHP есть пространства имен. Однако мое облегчение длилось недолго, мне действительно не нравится синтаксис; это добавляет больше беспорядка в мои вызовы функций. Итак, на данный момент я использую статические классы для имитации пространств имен. Есть ли в этом недостатки?
Я нашел аналогичный вопрос в Пространства имен PHP против классов со статическими функциями, но особого обсуждения не было.
Кроме того, есть ли способ избежать следующей ситуации:
class Test {
public static void myFunc() {
Test::myOtherFunc();
}
public static void myOtherFunc() {
}
}
Я предположил, что можно было бы вызывать функции в одном классе без указания имени, но, видимо, это не так. Существуют ли какие-либо обходные пути для этого (например, в С++ есть ключевое слово using).
self::
и$this->
используются в PHP для вызова ваших собственных статических методов и методов экземпляра соответственно. - person Ja͢ck   schedule 14.08.2012