【问题标题】:Is it wise to use exit() after each if statement? [closed]在每个 if 语句之后使用 exit() 是否明智? [关闭]
【发布时间】:2015-08-02 12:45:18
【问题描述】:

我见过一些在每个 if 语句后都有 exit() 的 php 脚本。示例:

if (empty($username)) {
   echo "error username is invalid";
  exit();
} else if (empty($password)) {
   echo "error password is invalid";
  exit();
} else {
  login($username, $password);
}

function login($u, $p)
{
   //do something here
   exit();
}

【问题讨论】:

  • 这取决于脚本,不能一概而论。
  • 所以上面的脚本在有或没有 exit() 的情况下会更好吗?
  • 在某些情况下会做得更好。
  • exit() 主要用于header('Location: index.php') 之后,以防止脚本在此之后执行任何操作
  • 上面的脚本应该改成类中的函数,尽管用你发布的几行代码是不可能的。

标签: php if-statement exit


【解决方案1】:

不,这绝对是对exit() 的毫无意义的使用。如果您绝对需要,只需将其放在脚本的末尾即可。像这样使用exit() 只有在您提供exit code(在命令行应用程序中使用)时才有用。

【讨论】:

    【解决方案2】:

    对于脚本而言,它“有效”,但绝对不是在发生错误情况时退出脚本的好方法。它仍然会输出http状态码200。

    头文件重定位后或调试时退出很方便

    【讨论】:

      【解决方案3】:

      您可以将 if 语句放在函数中,并且可以在每种情况下使用 return。因此,您不需要使用 else 语句。 示例。

      <?php
      function foo() {
          if ($cond1) {
              return $result1;
          }
          if ($cond2) {
              return $result2;
          }
          if ($cond3) {
              return $result3;
          }
          if ($cond4) {
              return $result4;
          }
      }
      

      【讨论】:

        猜你喜欢
        • 2014-11-25
        • 2012-06-23
        • 1970-01-01
        • 2016-03-23
        • 2017-03-04
        • 1970-01-01
        • 1970-01-01
        • 2010-12-01
        • 1970-01-01
        相关资源
        最近更新 更多