简单工厂的异常,不知如何修改
phpcn_u737
phpcn_u737 2017-02-14 16:02:29
0
2
757

<?php
//接口
interface calc{
    public function getResult();
}
//运算类
class Operation{
    protected $num1=0;
    protected $num2=0;
    protected $result=0;
    
    public function setNum($num1,$num2){
        $this->num1 = $num1;
        $this->num2 = $num2;
    }
}

//四则运算类
class OperAdd extends Operation implements calc{
    public function getResult(){
        return $this->result=$this->num1+$this->num2;
    }
}
class OperSub extends Operation implements calc{
    public function getResult(){
        return $this->result=$this->num1-$this->num2;
    }    
}
class OperMul extends Operation implements calc{
    public function getResult(){
        return $this->result=$this->num1*$this->num2;
    }
}
class OperDiv extends Operation implements calc{
    public function getResult(){
        if(intval($this->num2)==0){
            return $this->result="被除数不能为‘0’!";
        }else{
            return $this->result=$this->num1/$this->num2;     
        }        
    }
}
class OperFactory{
    private static $obj;
    public static function createrOper($type){
        try {
            switch ($type){
                case'+';
                    self::$obj = new OperAdd();
                    break;
                case'-';
                    self::$obj = new OperSub();
                    break;
                case'*';
                    self::$obj = new OperMul();
                    break;
                case '/':
                    self::$obj = new OperDiv();
                    break;    
                    default:
                        throw new Exception('unknow type');
                }
            } catch (Exception $e) {
                echo $e->getMessage();
        }
    }
}
$obj = OperFactory::createrOper('+');
$obj->setNum(2,2);
echo $obj->getResult();



问题在  $obj->setNum(2,2);总是找不到对象,实在是找不出来问题,求解。

phpcn_u737
phpcn_u737

全員に返信(2)
数据分析师

単純な工場での例外、変更方法がわかりません-PHP 中国語 Web サイト Q&A-単純な工場での例外、変更方法がわかりません-PHP 中国語 Web サイト Q&A

周りを見て学びましょう。

いいねを押す +0
phpcn_u737

好了···我发现了问题  原来是没有返回值  搞定了

いいねを押す +1
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!