【问题标题】:terminate execution by parent method通过父方法终止执行
【发布时间】:2011-10-25 21:02:27
【问题描述】:

我有以下代码:

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”

我想要的是,如果我通过 true,则只会出现“AliceBob”。说:我想终止父方法中 $x->example 的执行

我希望你得到我。如何做到这一点?

感谢您的帮助

【问题讨论】:

  • afaik PHP 中没有本机多线程,因此您无法从外部终止进程,因为您没有外部线程来执行此操作
  • @0xDEADBEEF:你不能那样做,除了调用 exit 或 die 并杀死整个脚本......顺便爱你的昵称!

标签: php inheritance terminate


【解决方案1】:

嗯...要么从 A::example() 返回一个布尔值,然后在 B::example() 中检查它以决定是否应该继续。

如果你真的想要中断,你可以抛出异常。然而,使用异常来处理控制流是糟糕的设计。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-09-17
    • 1970-01-01
    • 2016-12-28
    • 1970-01-01
    • 1970-01-01
    • 2014-03-12
    • 2021-12-20
    • 1970-01-01
    相关资源
    最近更新 更多