Комментарии 41
ну или вместо «механики» использовали «search and replace» не удосужившись провести ревизию кода после замены :)
блоки типа if(true) он выкоцывать не умел
а скорее на вечный цикл while… эт помоему пострашнее ифа)
if (l[0]+l[1]+l[2]+l[3]+l[4]=='i'+'n'+'p'+'u'+'t')вместо strncmp и sizeof вместо strlen :), но это немного из другой оперы…
А (фантастичная версия) цикл по идее нужен для обработки массива сообщений (или вложенных ошибок, если там такие бывают). Но потом оставили один сообщение, и хитровывернуто сделали один проход в цикле.
Пишем функцию вычисления синуса. Сначала тест:
assert_equals 0, sin(0)
функция:
def sin { 0 }
срабатывает!
Добавляем в тест:
assert_equals 1, sin(PI/2)
ломается, рефакторим…
Тут, видимо, остановились на пол-пути :)
P.S. Из DLE и WP выбрал последний, хотя из из проектов работает на дле.
Работает? Да!!!
А тот кто написал просто умница!
Посмеялся над многими «ботанами»
Желаю Вам не забывайте что вы не роботы а
Люди!
Чисто юзерский интерес через смену технологий:
Этот код представляет собой бесконечный цикл, который всегда будет возвращать false
при каждом выполнении итерации. Давайте разберем его пошагово:
Бесконечный цикл:
while (true)
указывает на то, что цикл будет выполняться бесконечно, так как условие всегда истинно.Установка сообщения об ошибке:
$this->errormsg = 'Connection failed (' . $errno . ')'; $this->errormsg .= ' ' . $errstr;
Эти строки кода устанавливают сообщение об ошибке, объединяя строку
'Connection failed ('
с переменной$errno
, затем добавляют значение$errstr
к сообщению об ошибке.Отладка:
$this->debug($this->errormsg);
Эта строка вызывает метод
debug
, передавая ему сообщение об ошибке для отладки.Возврат значения:
if (true) { return false; }
Внутри цикла есть условие
if (true)
, которое всегда истинно, и оно заставляет функцию возвращатьfalse
и выходить из текущей итерации цикла. Однако, поскольку это внутри бесконечного цикла, цикл будет повторяться и снова возвращатьfalse
.Цикл начинается заново: После возврата
false
, цикл начинает новую итерацию и снова выполняет те же действия.
Итог
Этот код постоянно устанавливает сообщение об ошибке, вызывает метод отладки с этим сообщением, и всегда возвращает false
при каждой итерации цикла. Однако, из-за бесконечного цикла, он будет повторять этот процесс бесконечно, что может привести к зависанию программы или бесконечному выполнению функции до тех пор, пока программа не будет принудительно остановлена.
Rss grabber для DLE жжот