【问题标题】:Is break; required after die() php是休息; die() php 之后需要
【发布时间】:2013-08-11 19:21:20
【问题描述】:

我想了很多...

在switch case区域中break;die()之后需要

例子:

switch($i){

     case 0:
          die('Case without break;');

     case 1:
          die('Case with break;');
          break;

}

【问题讨论】:

  • 没有必要,因为脚本永远不会真正到达中断线,因为您刚刚使用 die() 调用终止了脚本。这有点像为死人点餐。也许它对你有一些意义,但那个人不会在附近吃它。
  • 谢谢!我就是这么想的。我只是想我会四处打听,看看其他人对此有何看法。顺便说一句,这个比喻很好。

标签: php logic switch-statement case control-structure


【解决方案1】:

die() 只是exit() 的别名,其中exit() 将立即终止程序流。 (关闭函数和对象析构函数在exit() 之后仍然会被执行)

不,省略break 不是语法错误,相反,省略break 有很多有用的情况。有关示例,请查看 switch 语句的手册页。

【讨论】:

  • 感谢您提供的额外信息!我不知道这种关系。
  • 是的,曾经也发现这很有趣。 :) 我不知道为什么他们在 PHP 中有这么多别名。您还应该知道,如果您将字符串传递给die()(在大多数应用场景中都可以看到),它会直接影响返回值。如果你制作一个框架,我会使用像panic($string) 这样的函数,它将使用echo 打印消息,然后调用exit(1);
  • 也不知道。
  • 检查这个很有趣(如果你不需要调试的话):die('001 Script Error'); 将有一个返回值0 - Success,因为字符串将被转换为一个数字:0。有过这个,调试这让我快疯了!!! %)
【解决方案2】:

这不是必需的。即使对于开关break 也不是强制性的。如果在一种情况下没有中断,它只会继续执行下一种情况。

但在die 之后,没有区别,因为 die 会终止程序执行。只是希望你不打算在某些情况下使用die

【讨论】:

  • 这是有道理的。谢谢你:)
【解决方案3】:

从语法上讲,它不是必需的,但它不会被执行,因为die() 会导致执行停止。

【讨论】:

  • 我就是这么想的。感谢您的直接回答!
  • 我不认为这在语法上是必需的。
  • 在 PHP 中 case 之后不需要语法上的 break
  • @ಠ_ಠ 谢谢你不赞成的样子:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-01-03
  • 2017-05-09
  • 1970-01-01
  • 2014-11-28
  • 2012-07-03
  • 2019-10-02
相关资源
最近更新 更多