在OOP中使用类似函数或方法的goto

时间:2013-12-10 19:44:06

标签: php oop

我有一个有很多方法的类,我想找到让类从一个方法跳转到另一个方法的方法。

class foo{
  private $state = false; 
  function a(){
    if($this->state == false){
      //jumpt to method b
    }
    //other code 

  }   

 function b(){
   //
 }

function c(){

}

}

正如您所看到的,我正试图在a()之后跳过b()暂停a()内的所有内容。

3 个答案:

答案 0 :(得分:2)

function a(){
if($this->state == false){
  $this->b();
  return;
  }

 //other code 

}

这将调用b(),并根据需要跳过a()中的所有其他内容。

答案 1 :(得分:1)

对于gosub类型的行为,它将返回a()并继续,然后:

function a(){
    if($this->state == false){
      $this->b();
    }
    //other code 

  }

对于真正的goto类型的行为不能返回a()

function a(){
    if($this->state == false){
      return $this->b();
    }
    //other code 

  }

答案 2 :(得分:1)

您只需将其余代码放入else:

class foo{
  private $state = false; 
  function a(){
    if($this->state == false){
      $this->b();
    }
    else {
      //other code 
    }

  }   

  function b(){
    //
  }

  function c(){

  }
}

或者您可以在致电b

后返回
if($this->state == false){
   $this->b();
   return;
}