Ich möchte die Meinung der Menschen über die Verwendung von statischen Klassen anstelle von Namespaces messen. Ich komme aus einem C++ - Hintergrund und bin ziemlich begeistert von seiner Syntax und wie Sie Code strukturieren können. Ich entschied kürzlich, dass ich meinen Code in logische Einheiten statt nur Dateien gruppieren musste. Zum Beispiel bevorzuge ich Anrufe wie User :: Login zu user_login. Also habe ich ein wenig gegoogelt und war erleichtert festzustellen, dass PHP Namespaces hat. Meine Erleichterung dauerte nicht lange, ich mag die Syntax wirklich nicht; es fügt meinen Funktionsaufrufen mehr Chaos hinzu. Im Moment verwende ich statische Klassen, um Namespaces zu simulieren. Gibt es da Nachteile?PHP Static Class oder Namespace
Ich fand eine ähnliche Frage bei PHP Namespaces vs Classes with static functions, aber es gab nicht viel Diskussion.
Auch ist es eine Möglichkeit, die folgende Situation zu vermeiden:
class Test {
public static void myFunc() {
Test::myOtherFunc();
}
public static void myOtherFunc() {
}
}
ich es ok wäre davon ausgegangen, Funktionen in der gleichen Klasse zu nennen, ohne Angabe des Namens, aber anscheinend nicht. Gibt es dafür Workarounds (zB in C++ das using-Schlüsselwort)?
'self ::' und '$ this->' werden in PHP verwendet, um eigene statische bzw. Instanzmethoden aufzurufen. –
Also gibt es keine Möglichkeit für die Qualifikation implizit zu sein? Dh um die aktuelle Klasse für eine Funktion zu überprüfen? – user1520427
Nein, aber ich finde explizit eine gute Sache :) –