inPHP.org, уровень 6
10 ноября 2008
Радостное событие для всех, кому понравился тест inPHP.org.
Доступна аккредитация шестого уровня «Свободное владение языком PHP. Способность принимать нестандартные решения».
10 ноября 2008
Радостное событие для всех, кому понравился тест inPHP.org.
Доступна аккредитация шестого уровня «Свободное владение языком PHP. Способность принимать нестандартные решения».
© 2005—2025, Александр Макаров (Sam Dark)
~ дизайн: fazeful design //Отработало за 0.01253 с. Скушано памяти: 0.75MB
Комментарии RSS по email OK
Мда, клиника.
Вопрос:
*Какое из данных выражений является самым медленным по времени выполнения?
$a = $Arr['one']
$a = $Arr["one"]
$a = $Arr[one]*
Ответ:
Все зависит от one, если это константа, то все варианты равносильны, если это ключ массива без кавычек, то это ворнинг, который, разумеется будет медленнее. Итог: не достаточно данных.
Вопрос:
*Какой из фрагментов кода выполнится быстрее, если $a - строка?
1.
for ($i=1; $i<=100; $i++) {
$b .= $a;
}
2.
for ($i=1; $i<=100; $i++) {
$b = $b.$a;
}
3.
for ($i=1; $i<=100; $i++) {
$b = "$b$a";
}*
Ответ:
Мне искренне жаль человека, который в php таким образом оптимизирует свое приложение.
Короче говоря, если первые 5 тестов были еще ничего, то 6-й это бесплодные потуги придумать "сложные" вопросы.
Почему клиника? Я ответил сразу правильно:
Какое из данных выражений является самым медленным по времени выполнения?
$a = $Arr[one]
Какой из фрагментов кода выполнится быстрее, если $a - строка?
$b = $b.$a;
Со вторым потом засомневался и проверил.
В чем клиника, я пояснил дважды под словом "Ответ:" :-)
Все зависит от one, если это константа, то все варианты равносильны
Этого вообще предположить никак нельзя:
Мне искренне жаль человека, который в php таким образом оптимизирует свое приложение.
Да, это конечно не самый лучший способ, но если у нас цикл по 200000 элементов, на этом можно выиграть. Да и вообще чем плох сам вопрос? Тут же не спрашивается, насколько оправдана оптимизация…
Какой из фрагментов кода выполнится быстрее, если $a - строка?
$b = $b.$a;
Со вторым потом засомневался и проверил.
Странно, что у вас быстрее этот вариант. Я протестировал на никсах, вот результаты
0.0001649857ms - $b = $b.$a;
0.0000700951ms - $b .= $a;
0.0004069805ms - $b = "$b$a";
Так что даже не знаю, что писать в тесте :)
Spirit
Там вроде тест поправили. Раньше верным был $b = $b.$a. Теперь скорее всего $b .= $a. Оно вообще себя ведёт по-разному в разных ОС при различных условиях.
ну теперь хоть буду знать, что у меня ошибка была в другом месте, спасибо
а на виндах вообще странно - раз через 10 и "$a$b" быстрее получается :)
Sam, define('one', 'one');
А 7-й ещё не открыли? или это уже платно?
Седьмой вроде тоже бесплатный. Но его ещё нет.