прекратить выполнение родительским методом - PullRequest
2 голосов
/ 25 октября 2011

У меня есть следующий код:

class A
{
   function example($bool)
   {
      echo "Bob";
      if($bool === true)
      {
         //how to terminate?
      }
   }
}

class B extends A
{
   function example($bool)
   {
      echo "Alice";
      parent::example($bool);
      echo "Charlie";
   }
}

если я позвоню

$x = new B;
$x->example(false);

я получу "AliceBobCharlie", как и ожидалось

, и я хочучто если я передам истину, появится только «AliceBob».сказать: я хочу прекратить выполнение $ x-> example в методе parent

я надеюсь, что вы меня поняли.как это сделать?

спасибо за помощь

1 Ответ

7 голосов
/ 25 октября 2011

Ну ... либо вы возвращаете логическое значение из A::example() и отмечаете его в B::example(), чтобы решить, следует ли вам продолжать.

Если вы действительно хотите иметь прерывание, вы можете вызвать исключение,Однако использование исключений для обработки потока управления - плохой дизайн.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...