テストタスク
非常に珍しいテストタスクが見つかりました。そのテキストを次に示します。
「以下の機能をご覧ください。 一見、彼女は何をしていたと思いますか? 彼女の何が問題なのですか?
機能コードを注意深く読んでください。
潜在的な欠陥や不便な点はありますか?
コードをリファクタリングまたは再設計する最良の方法は何ですか? (必要に応じて、あなたの意見では、それを行います。)
<?
function choose_period ( $field_name = '' )
{
global $TEXT , $PHP_SELF , $PERIOD_TO , $PERIOD_FROM ;
if (!isset( $PERIOD_TO )) $PERIOD_TO = date ( "dmY" , 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 ( "dmY" , 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' ]. "
c <input type=text name=PERIOD_FROM value='" .( $PERIOD_FROM ? date ( "dmY" , $PERIOD_FROM ) : "" ). "' size=12 title='" . date ( "dmY H:i:s" , $PERIOD_FROM ). "'>
<input type=text name=PERIOD_TO value='" .( $PERIOD_TO ? date ( "dmY" , $PERIOD_TO ): "" ). "' size=12 title='" . date ( "dmY H:i:s" , $PERIOD_TO ). "'>
<input class=b type=submit value='>>>'></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 );
} ?>
どのリファクタリングオプションを提案しますか?
All Articles