Ich weiß, das klingt nach einer punktgenauen Frage, aber lassen Sie mich erklären, woher ich komme.
Nach dem College bekam ich einen Job in einem PHP-Shop. Ich habe dort anderthalb Jahre gearbeitet und dachte, ich hätte alles gelernt, was man über Programmieren lernen muss.
Dann bekam ich einen Job als Ein-Mann-Entwicklungshaus bei einem großen Unternehmen, in dem die ganze Arbeit in C # war. In meinem Engagement für diese Position begann ich eine Menge Blogs und Bücher zu lesen und erkannte schnell, wie falsch ich war zu glauben, ich wüsste alles. Ich habe etwas über Unit-Tests, Abhängigkeitsinjektions- und Dekorationsmuster, das Designprinzip der losen Kopplung, die Zusammensetzung über die Erbschaftsdebatte usw. gelernt und so weiter und so fort - ich nehme immer noch alles in mich auf. Unnötig zu erwähnen, dass sich mein Programmierstil im letzten Jahr grundlegend geändert hat.
Jetzt nehme ich ein PHP-Projekt in die Hand, das für das Start-up eines Freundes programmiert, und fühle mich im Gegensatz zur Programmierung in C # völlig eingeschränkt. Es stört mich wirklich, dass auf alle Variablen in einem Klassenbereich verwiesen werden muss, indem '$ this->' angehängt wird. Es ärgert mich, dass keine der IDEs, die ich ausprobiert habe, eine sehr gute Intelligenz hat und dass meine SimpleTest-Unit-Test-Methoden mit dem Wort "Test" beginnen müssen. Es macht mich verrückt, dass ich durch dynamische Typisierung nicht implizit angeben kann, welchen Parametertyp eine Methode erwartet, und dass Sie eine switch-Anweisung schreiben müssen, um Methodenüberladungen durchzuführen. Ich kann es nicht ertragen, dass Sie keine verschachtelten Namespaces haben können und den Operator :: verwenden müssen, um den Konstruktor der Basisklasse aufzurufen.
Jetzt habe ich nicht die Absicht, eine Debatte zwischen PHP und C # zu beginnen. Ich möchte vielmehr sagen, dass ich sicher bin, dass es einige PHP-Funktionen gibt, die ich entweder nicht kenne oder die ich noch nicht richtig benutze. Ich bin in meinem C # -Universum und habe Probleme, außerhalb der Glasschale zu sehen.
Also frage ich, was sind deine Lieblingsfunktionen von PHP? Was können Sie darin tun, was Sie in den .NET-Sprachen nicht können oder schwieriger sind?