在用户登录时有条件地运行PHP脚本的最佳方法

时间:2009-02-26 12:58:37

标签: php coding-style

我可能会挑剔,但这样做会更好:

if ($loggedin) {
    // normal process
}
else {
    header('Location: login.php');
}

或者这个:

if (!$loggedin) {
    header('Location: login.php');
    exit();
}
// normal process

或者它没关系?

5 个答案:

答案 0 :(得分:5)

我更喜欢第二种风格,因为“// normal process”可能是一段很长的代码,所以最后的}(来自else分支)可能有点令人困惑。

答案 1 :(得分:5)

我更喜欢第二个,因为这样“正常过程”因为简单的检查而不是已经有1个缩进级别。我认为PHP可能会优化这一点,因此性能无关紧要,所以在这一点上它是一个可读性的问题,第二个对我来说更有意义(“未登录,重定向,退出”)而不是将所有逻辑包装在一个巨大的IF。

答案 2 :(得分:1)

它确实没有任何区别。在我个人看来,第二个分支更容易理解,因为您不必滚动到最后查看用户未登录时发生的情况。

答案 3 :(得分:0)

重定向后,您应始终使用exitdie,以避免执行更多代码。

但除此之外,我也更喜欢第二种,因为$loggedin是你“正常过程”的先决条件。

答案 4 :(得分:0)

绝对是第二个。它读起来更好,对你的其余代码效果更好。