douchun1948 2011-08-02 04:33
浏览 14
已采纳

如何简化此代码? (如果其他声明太多)

Here is a simple code for user input information, the first if's condition is this->sanitize, to check the data is valid or not, another is this->haveDuplicateUser_nameAndEmail(), which is use to check the user name and email is existed in the db or not. the third one is this->addNewUser(), which add the user record to the db.

    if(!$this->sanitize()){
        $this->printError();   //the data is not sanitize
        return;
    }else{       
        if($this->haveDuplicateUser_nameAndEmail()){ //duplicateUserNameAndPassword, cannot add new user
            $this->printError();
        }else{
            if($this->addNewUser()){ 
                $this->printSuccess(); //add user success
            }else{
                $this->printError(); //add user fail
            }
        }
    }        
  • 写回答

5条回答 默认 最新

  • dsbj66959 2011-08-02 04:44
    关注

    You can use exceptions to simplify the block you have presented to us. You will have to update the code of the respective methods to throw these exceptions based on their own internal, boolean logic. There is no non-if solution to say something like "Is this POST equal to an empty string?" in php.

    If you do this, you are getting into the realm of using exceptions as gotos, which is generally frowned upon. I think you can debate it either way.

    try {
       $this->sanitize();
       $this->haveDuplicateUser_nameAndEmail();
       $this->addNewUser();
       $this->printSuccess();
    }
    catch (SanitizeOrDuplicateException $sode) {
       $this->printError();
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(4条)

报告相同问题?

悬赏问题

  • ¥15 虚幻5 UE美术毛发渲染
  • ¥15 CVRP 图论 物流运输优化
  • ¥15 Tableau online 嵌入ppt失败
  • ¥100 支付宝网页转账系统不识别账号
  • ¥15 基于单片机的靶位控制系统
  • ¥15 真我手机蓝牙传输进度消息被关闭了,怎么打开?(关键词-消息通知)
  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度
  • ¥30 关于#r语言#的问题:如何对R语言中mfgarch包中构建的garch-midas模型进行样本内长期波动率预测和样本外长期波动率预测