Pull to refresh

Тестовое задание

Reading time2 min
Views1.6K
Обнаружил очень необычное тестовое задание, вот его текст:

«Взгляните на приведенную ниже функцию. На первый взгляд, как вам показалось, что она делает? Что в ней не так?

Внимательно ознакомьтесь с кодом функции.

Какие потенциальные недочёты и неудобства вы в ней обнаружили?

Каким образом целесообразнее всего произвести рефакторинг или спроектировать код заново? (если это нужно, на ваш взгляд, сделайте это).»


<?
function choose_period($field_name='')
{
    global 
$TEXT$PHP_SELF$PERIOD_TO$PERIOD_FROM;

    if (!isset(
$PERIOD_TO)) $PERIOD_TO = date("d.m.Y",time());
    if (
$PERIOD_TO) {
     ereg("(.+)\.(.+)\.(.+)", $PERIOD_TO, $r);
     
$PERIOD_TO=mktime(23,59, 59, $r[2],$r[1],$r[3]);
    }
    if (!isset(
$PERIOD_FROM)) 
     $PERIOD_FROM = date("d.m.Y"strtotime("-1 month +1day"$PERIOD_TO));
    if (
$PERIOD_FROM) {
    ereg("(.+)\.(.+)\.(.+)",$PERIOD_FROM,$r); $PERIOD_FROM=mktime(0,0,0,$r[2],$r[1],$r[3]);
    }
    
$TEXT.="<form action='$PHP_SELF'>".$GLOBALS['FORM']." &nbsp; &nbsp;
    c <input type=text name=PERIOD_FROM value='"
.($PERIOD_FROM ? date("d.m.Y",$PERIOD_FROM) : "")."' size=12 title='".date("d.m.Y H:i:s",$PERIOD_FROM)."'>
    по <input type=text name=PERIOD_TO value='"
.($PERIOD_TO ? date("d.m.Y",$PERIOD_TO):"")."' size=12 title='".date("d.m.Y H:i:s",$PERIOD_TO)."'>
    <input class=b type=submit value='&gt;&gt;&gt;'></form>"
;
    if (
$field_name)
    {
        if (
$PERIOD_TO$WHERE.=" and $field_name<=$PERIOD_TO ";
        if (
$PERIOD_FROM$WHERE.=" and $field_name>=$PERIOD_FROM ";
    }
    return 
eregi_replace("^ and "," where ",$WHERE);
}
?>


А какой вариант рефакторинга предложили бы вы?
Tags:
Hubs:
0
Comments24

Articles