Результаты поиска
PHP: доступ к значению массива на лету
В php мне часто приходится сопоставлять переменную с помощью массива ... но я не могу, кажется, быть в состоянии сделать это в одном лайнере. c.f. образец:
// the following results in an error:
echo array('a','b','c')[$key];
// this works, using an unnecessary variable:
$variable = array('a','b','c');
echo $variable[$key];
Это небольшая проблема, но она продолжает беспокоить время от времени ... Мне не нравится тот факт, что я использую переменную просто так ;)
PHP: доступ к значению массива на лету
В php мне часто приходится сопоставлять переменную с помощью массива ... но я не могу, кажется, быть в состоянии сделать это в одном лайнере. c.f. образец:
// the following results in an error:
echo array('a','b','c')[$key];
// this works, using an unnecessary variable:
$variable = array('a','b','c');
echo $variable[$key];
Это небольшая проблема, но она продолжает беспокоить время от времени ... Мне не нравится тот факт, что я использую переменную просто так ;)
Вывод строки: формат или конкат в C#?
Допустим, вы хотите вывести или объединить строки. Какой из следующих стилей вы предпочитаете?
var p = new { FirstName = "Bill", LastName = "Gates" };Console.WriteLine("{0} {1}", p.FirstName, p.LastName);Console.WriteLine(p.FirstName + " " + p.LastName);
Вы предпочитаете использовать формат или просто объединяете строки? Что у вас самое любимое? У тебя что, от одного из них болят глаза?
Есть ли у вас рациональные аргументы, чтобы использовать одно, а не другое?
Я бы предпочел второй вариант.
Инденторы и декораторы пакетного кода
Кто-нибудь знает хорошего пакетный файл инденторов код или beautifiers?
Специально для PHP, JS и SGML-языков.
Предпочтительно с вариантами относительно стиля.
Принудительное оформление атрибутов классов / методов
Следуя моему недавнему вопросу о больших, сложных объектах Как результате веб-службы . Я думал о том, как я могу гарантировать, что все будущие дочерние классы сериализуются в XML.
Теперь, очевидно, я мог бы реализовать интерфейс IXmlSerializable , а затем бросить в него читателя / писателя, но я хотел бы избежать этого, поскольку это означает, что мне нужно создавать экземпляр читателя/писателя всякий раз, когда я хочу это сделать, и 99.99% времени я буду работать со строкой, поэтому я могу просто написать свой собственный.
Однако, чтобы сериализовать до XML, я просто украшаю класс и его членов Xml? ?? атрибуты ( XmlRoot , XmlElement и др.) и затем передать его в XmlSerializer и StringWriter , чтобы получить строку. И это все хорошо. Я намерен поместить метод для возврата строки в общий метод утилиты, поэтому мне не нужно беспокоиться о типе и т. д.
То, что меня беспокоит, заключается в следующем: если я не украшаю класс(ы) необходимыми атрибутами, ошибка не возникает до времени выполнения.
Есть ли способ применить украшение атрибута? Можно ли это сделать с помощью FxCop? (Я еще не использовал FxCop)
UPDATE:
Извините за задержку в получении этого закрыть ребята, много дел!
Определенно нравится идея использовать отражение, чтобы сделать это в тестовом случае, а не прибегать к FxCop (например, чтобы держать все вместе).. Ответ Фредрика Калсета был фантастическим, спасибо за включение кода, поскольку мне, вероятно, потребовалось бы немного копать, чтобы понять, как это сделать самому!
+1 к другим ребятам за аналогичные предложения :)
PHP включает в себя против OOP
Я хотел бы иметь ссылку на плюсы и минусы использования include files vs objects(classes) при разработке приложений PHP.
Я знаю, что мне было бы полезно иметь одно место, чтобы пойти на это answer...I есть несколько собственных мнений, но я с нетерпением жду, чтобы услышать других.
простой пример:
Некоторые страницы на моем сайте доступны только зарегистрированным пользователям. У меня есть два варианта реализации (есть и другие, но давайте ограничимся этими двумя)
Создайте файл authenticate.php и включите его на каждой странице. Он содержит логику для аутентификации.
Создайте объект пользователя, который имеет функцию аутентификации, ссылайтесь на объект для аутентификации на каждой странице.
Edit я хотел бы увидеть, как можно взвесить преимущества одного над другим. Мои текущие (и слабые причины) следуют:
Включает в себя - иногда функция-это просто easier/shorter/faster называть Объекты-группировка функциональных возможностей и свойств приводит к более длительному обслуживанию.
Включает в себя-меньше кода для записи (нет конструктора, нет синтаксиса класса) назовите меня ленивым, но это правда.
Объекты -сила формальности и единый подход к функциям и созданию.
Включает в себя-легче для новичка, чтобы иметь дело с Объекты-сложнее для новичков, но не одобряются профессионалами.
Я смотрю на эти факторы в начале проекта, чтобы решить, хочу ли я делать включения или объекты. Это несколько плюсов и минусов с моей головы.
Когда вы используете ключевое слово "this"?
Мне было любопытно, как другие люди используют это ключевое слово. Я обычно использую его в конструкторах, но я также могу использовать его по всему классу в других методах. Примеры:
В конструкторе:
public Light(Vector v)
{
this.dir = new Vector(v);
}
В другом месте
public void SomeMethod()
{
Vector vec = new Vector();
double d = (vec * vec) - (this.radius * this.radius);
}
Лучшие практики для рефакторинга классического ASP?
Я должен сделать некоторые значительные разработки в большой, старой, спагеттированной системе ASP. Я долгое время был вдали от ASP, сосредоточив свою энергию на Rails развитии.
Один из основных шагов, который я предпринял, - это рефакторинг страниц в суб-файлы и функции со значимыми именами, чтобы, по крайней мере, было легко понять, что происходит в верхней части файла.
Есть ли достойная MVC структура для ASP? Или это лучшая практика, как по крайней мере получить бизнес-логику из представлений? (Я помню, что в свое время делал много включений-это все еще способ сделать это?)
Я бы тоже хотел провести модульное тестирование бизнес-логики, но, может быть, я прошу слишком многого?
Обновление:
В проекте более 200 ASP скриптов, несколько тысяч строк длиной ;) UGH!
Мы можем выбрать "big rewrite", но до тех пор, когда я буду менять страницу, Я хочу потратить немного дополнительного времени на уборку спагетти.