テストタスク

非常に珍しいテストタスクが見つかりました。そのテキストを次に示します。



「以下の機能をご覧ください。 一見、彼女は何をしていたと思いますか? 彼女の何が問題なのですか?



機能コードを注意深く読んでください。



潜在的な欠陥や不便な点はありますか?



コードをリファクタリングまたは再設計する最良の方法は何ですか? (必要に応じて、あなたの意見では、それを行います。)




<?

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' ]. " &nbsp; &nbsp;

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='&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 );

}
?>








どのリファクタリングオプションを提案しますか?



All Articles