HTML:
<!DOCTYPE HTML > < HTML LANG = "EN" > < 頭> < メタ文字コード= "UTF-8" > < タイトル>策略模式</ タイトル> </ ヘッド> < 身体> < フォームアクション=」。/ demo03.php " メソッド= "ポスト" > < 入力タイプ= "テキスト" 名前= "OP1" > < 選択名=」 = "追加" > + </ オプション> < オプション値= "サブ" > - </ オプション> < オプション値= "マルチ" > * </ オプション> < オプション値= "DIV" > / </ オプション> < / 選択> < 入力タイプ= "テキスト" 名前= "OP2" > < P > <入力タイプ=「提出」名前=「」値= "计算" > </ P > </ 構成> </ ボディ> </ HTML >
PHP:
<?PHP / * * *戦略モード * *算術実装 * / 界面MathOp { パブリック 関数の計算(フロート の$ NUM1、フロート の$ NUM2 ); } // 戦略プラス クラスは MathAdd 実装MathOp { パブリック 関数の計算(フロート $をNUM1、フロート の$ NUM2 ) { // TODO:。()メソッド計算を実装 リターン $ NUM1 + $ NUM2。 } } // 策略二减 クラス MathSub 実装MathOp { パブリック 関数計算(フロート の$ NUM1、フロート の$ NUM2 ) { // TODO:計算()メソッドを実装します。 返す $ NUM1 - $ num2のを。 } } // 策略三乘 クラス MathMulti 実装MathOp { パブリック 関数計算(フロート の$ NUM1、フロート の$ NUM2 ) { // TODO:計算()メソッドを実装します。 返す $ NUM1 * $ num2のを。 } } クラス MathDiv 実装MathOp { パブリック 関数計算(フロート $ NUM1、フロート の$ NUM2 ) { // TODO:実装演算()メソッド。 もし($ num2の == 0 ){ リターン "被除数不能为0" ; } を返す $ NUM1 / $ num2の。 } } //環境文字選択ポリシーの実装 クラスOP { プライベート の$ mathop 。 パブリック 関数 __construct(文字列 $タイプ) { $この - > mathop = '数学'。$タイプ。 } パブリック 関数 CALC(フロート の$ NUM1、フロート の$ NUM2 ) { $ CLS = 新しい $この - > mathop。 エコー $ CLS - >計算($ NUM1、$ NUM2 )。 } } $タイプ =$ _POST [ 'on'に]。 $ OP1 = $ _POST [ "OP-1" ]; $ OP2 = $ _POST [ "OP2" ]; $ OBJ = 新しい上($タイプ)。 $ OBJ - > CALC($ OP1、$ OP2)。