PHPの戦略パターンシンプルな電卓

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)。

おすすめ

転載: www.cnblogs.com/zhangxiaoj/p/12077411.html