Я хочу узнать мнение людей об использовании статических классов вместо пространств имен. Я родом из C++, и мне очень нравится его синтаксис и то, как он позволяет вам структурировать код. Недавно я решил, что мне нужно сгруппировать свой код в логические блоки, а не просто в файлы. Например, я предпочитаю такие вызовы, как вход пользователя ::для входа пользователя _. Итак, я немного погуглил и с облегчением обнаружил, что в PHP есть пространства имен. Однако мое облегчение длилось недолго, мне действительно не нравится синтаксис; это добавляет больше беспорядка в мои вызовы функций. Итак, на данный момент я использую статические классы для имитации пространств имен. Есть ли в этом недостатки?
Я нашел аналогичный вопрос в PHP Namespaces vs Classes with static functions , но особого обсуждения не было.
Кроме того, есть ли способ избежать следующей ситуации:
class Test {
public static void myFunc() {
Test::myOtherFunc();
}
public static void myOtherFunc() {
}
}
Я предположил, что можно было бы вызывать функции в одном классе без указания имени, но, видимо, это не так. Существуют ли какие-либо обходные пути для этого (, например, в C++ есть ключевое слово using ).