Я знаю, что это звучит как вопрос для обсуждения, но позвольте мне объяснить, откуда я.
Вне колледжа я устроился на работу в магазин PHP. Я работал там полтора года и думал, что я узнал все, что можно было узнать о программировании.
Затем я получил работу в качестве единоличного внутреннего разработчика в крупной корпорации, где вся работа была на C #. В своей приверженности этой должности я начал читать тонну блогов и книг и быстро понял, как неправильно я думал, что знаю все. Я узнал о модульном тестировании, внедрении зависимостей и шаблонах декораторов, принципе проектирования слабой связи, обсуждении композиции по наследованию и так далее, и тому подобное - я все еще очень сильно поглощаю все это. Излишне говорить, что мой стиль программирования полностью изменился за последний год.
Теперь я ловлю себя на том, что беру проект php, занимающийся кодированием для запуска друга, и я чувствую себя полностью ограниченным в отличие от программирования на C #. Меня действительно беспокоит, что все переменные в области видимости класса должны быть указаны путем добавления '$ this->'. Меня раздражает, что ни одна из IDE, которые я пробовал, не имеет очень хорошего интеллекта и что мои методы модульных тестов SimpleTest должны начинаться со слова «test». Это сводит меня с ума, что динамическая типизация мешает мне неявно указывать, какой тип параметра ожидает метод, и что вам нужно написать оператор switch для выполнения перегрузок метода. Я не могу смириться с тем, что вы не можете иметь вложенные пространства имен и должны использовать оператор :: для вызова конструктора базового класса.
Сейчас я не собираюсь начинать дебаты по PHP против C #, я хочу сказать, что я уверен, что есть некоторые функции PHP, о которых я либо не знаю, либо знаю, но не могу их использовать должным образом. Я нахожусь в своей вселенной C # и испытываю проблемы с видением за пределами стеклянной чаши.
Итак, я спрашиваю, какие ваши любимые функции PHP? Что вы можете сделать в этом, чего вы не можете или более сложны в языках .Net?