1

*关于如何在 php 面向对象编码中处理此类问题的问题/困惑 *

我有客户类,我需要为客户暂停服务,但是当客户有待处理的服务工作类型时,我需要为调用函数返回一个 false 来执行错误处理(我不能在这里这样做,因为它可能是电子邮件、输出或 html)

但是我很困惑如何处理这个问题,就像使用下面的代码一样,它只会在我猜的 foreach 循环的最后一个条件下返回 false,关于如何从编码的角度处理这个问题的任何想法

 /**
   * return false on failier 
   * Customer suspend all services for this customer
   * 
   */
  public function suspendServices(){

    $pending=false; 

    foreach ($this->services() as $service) {

    $pending = $service->hasPendingWorktypes();

    if($pending === true) {
        return false;
    }   
    $service->state()->changeTo(8);  

    }//end of foreach services 

  }//end of function
4

1 回答 1

0

Exceptions 非常适合这项工作。然后,调用服务的业务方法可以继续有效地处理该部分以获得正确的结果。

public function suspendServices(){

    $pending=false; 

    foreach ($this->services() as $service) {

    $pending = $service->hasPendingWorktypes();

    if($pending === true) {
        throw new PendingExcpetion(); //Throw the exception
    }   
    $service->state()->changeTo(8);  

    }//end of foreach services 
}
于 2012-06-13T10:12:55.607 回答