4

我有一个非常基本的问题......在一个php函数中,如果一个值返回FALSE,我将重定向,否则继续代码。

flibbertigibbet()
{
   $value = true_or_false();

   if ($value == FALSE)
   {
       //redirect to another controller method
   }

   //the rest of the code
}

重定向后会发生什么?如果说..重定向需要更长的时间来加载,代码是否会中断或执行一点?

exit()重定向后使用是一种好习惯吗?

4

3 回答 3

4

代码将继续执行 - 不仅在重定向需要更长的时间时,而且每次 nd 一直到最后。

是否使用exit()取决于您是否希望执行其余代码。您可以设置 aheader()并发送一个新地址,但之后您仍然可以执行某些操作 - 例如更新数据库或其他一些位。

我通常认为最好完成所有需要的更新并header()在页面末尾发送正确的信息 - 使调试更容易和更直观。

于 2012-08-19T01:34:52.590 回答
4

仅设置重定向标头本身并没有任何作用。始终exitdie在设置 Location 标头之后(除非您确切知道自己在做什么)

于 2012-08-19T01:34:59.167 回答
1

这实际上取决于重定向的含义。是的,如果它是这样的,它将永远不会运行其余的代码:
header("Location: http://newurl.com");

否则,除非有充分的理由让它不回来(无限循环,你试图include内容花费太长时间并且没有设置超时,你使用exit()...),那么其余的代码将在 if 条件代码完成运行后立即运行。

于 2012-08-19T01:39:27.047 回答