Портал «Fashion Lab»

Дата начала: сентябрь 2008
Сайт: www.fashion.az

Постановка задачи:

Разработка портала для любителей отслеживать последние тенденции моды. На портале возможно общение между участниками, голосование за лучшие бренды и магазины, поиск магазинов и прочее. Continue Reading

Список тестов для PHP

Поскольку нам очень долго пришлось искать нового программиста, мы были вынуждены проводить собеседование со множеством людей, в результате мы пришли к выводу, что необходимо написать какие-то тесты, чтобы отсекать множество кандидатов уже на подходе. Вот они:

1. Что делает запрос и почему не рекомендуется его использовать?
SELECT * FROM test_table ORDER BY RAND() LIMIT 10;

Ответ: Запрос выполняет выборку из таблицы, результатом будут случайные значение в кол-ве 10 штук. Не рекомендуется он по следующим причинам: считается, что SELECT * это не правильно. Это так, но не везде. Но главное, это то, что ORDER BY RAND() не рекомендован в инструкции по MySQL для современных версий.

2. Напишите функцию на PHP, которая прибавляет к текущей дате 3 месяца.

Ответ: Каждый программист напишет по-разному, главное, чтобы учитывались високосные года, февраль и вообще различие в месяцах. Мой ответ будет: print date(‘d.m.Y’, mktime(0,0,0,date(‘m’)+3,date(‘d’),date(‘Y’);
Заморочено, но не надо возиться с кучей вещей, все сделают за тебя.

3. Почему приведенный ниже код не верен?
if ( strpos(‘abcdefg’, ‘abc’) ) {
print “Найдено!”;
} else {
print “Не найдено!”;
}

Ответ: это задание я прочел в журнале PHP Inside. Правильный ответ заключается в том, что strpos вернет 0, но 0 будет интерпретирован как false и у нас будет «Не найдено». Тогда как, необходимо сравнивать по типу и записывать:
if ( strpos(‘abcdefg’, ‘abc’) !== false )

4. Напишите регулярное выражение для проверки e-mail адреса.

Ответ: [A-Z0-9._%-]+@[A-Z0-9._%-]+\.[A-Z]{2,4}

5. Почему приведенный ниже код возвращает bool(false) ?
var_dump(0.7 + 0.1 == 0.8 );

Ответ: это тоже из журнала PHP Inside. Дело в том, что нельзя сравнивать выражения с плавающей точкой в таком виде. Просто нельзя и все тут.