meraの日記: ポリモどき
日記 by
mera
今何気にPHPでユーティリティクラスをコーディング中。で、その中にフォーム入力タグを出力するタグが大量に並びまくり。 PHPでうまい事 interface クラスもどきな実装はできひんもんやろか? それがでけたらインターフェイスから呼び出すだけで全フォームのコールが統一されてもっとすっきりしたコードになるのに。 とか思いつつちょっぴりポリもどきに挑戦。
class Interface {
function drawForm() {
$args = func_get_args() ;
$exestr = "\$this->drawFormExec(" ;
for( $ii=0; $ii<count($args); $ii++ ) !$ii ? $exestr .= "\"".$args[$ii]."\"" : $exestr .= ", \"".$args[$ii]."\"" ;
$exestr .= " ) ; " ;
eval( $exestr ) ;
}
}
class TextForm extends Interface {
function drawFormExec( $name, $value="" ) { echo "<input type=\"text\" name=\"".$name."\" value=\"".$value."\"><br>" ; }
}
class TextAreaForm extends Interface {
function drawFormExec( $name, $cols, $rows, $value="" ) { echo "<textarea name=\"".$name."\" cols=\"".$cols."\" rows=\"".$rows."\">".$value."</textarea>" ; }
}
$form = new TextForm() ;
$form->drawForm( "var1" ) ;
$form = new TextAreaForm() ;
$form->drawForm( "var2", "60", "5" ) ;
class Interface {
function drawForm() {
$args = func_get_args() ;
$exestr = "\$this->drawFormExec(" ;
for( $ii=0; $ii<count($args); $ii++ ) !$ii ? $exestr .= "\"".$args[$ii]."\"" : $exestr .= ", \"".$args[$ii]."\"" ;
$exestr .= " ) ; " ;
eval( $exestr ) ;
}
}
class TextForm extends Interface {
function drawFormExec( $name, $value="" ) { echo "<input type=\"text\" name=\"".$name."\" value=\"".$value."\"><br>" ; }
}
class TextAreaForm extends Interface {
function drawFormExec( $name, $cols, $rows, $value="" ) { echo "<textarea name=\"".$name."\" cols=\"".$cols."\" rows=\"".$rows."\">".$value."</textarea>" ; }
}
$form = new TextForm() ;
$form->drawForm( "var1" ) ;
$form = new TextAreaForm() ;
$form->drawForm( "var2", "60", "5" ) ;
ポリモどき More ログイン