0

在文件顶部,我想检查用户权限,例如,如果已登录,用户是否有权访问该页面,他们可以看到哪些内容,内容是否由用户自己发布,是否所有必要的参数都已通过(例如POST-vars)等

所以,问题是,你会建议什么是最好的方法(代码保持可读性和可理解性,对于特殊页面不太具体,以便可以在每个页面上实现它,性能因为许多检查需要数据库查询等.)

我问的原因是,因为现在我正在做这样的事情:

if($logged_in!=1) {$error="err1";}

else {
    if(...) {...}
    else {...}
}

所以,基本上,如果一个检查返回访问被拒绝,代码将不会通过所有其他if的,而是立即中断。我不使用exit或者die因为我确实想显示页面(没有内容但有一个错误框),所以如果我使用exit或者die它不会在下面显示任何其他代码......

你会建议做什么?

非常感谢您的帮助。

4

1 回答 1

1

好吧,if/else构造往往很大并且不是真正可读的。您可以考虑使用Exceptions失败案例,基本上:

<?php
try {

   if($logged_in!=1) {
      throw new Exception("You must be logged in");
   }

   if(!another_condition()) {
      throw new Exception("Another condition failed");
   }

   do_something();
}
catch (Exception $error) {
   display_error_page($error->getMessage());
}

一般来说,即使这样也不是最漂亮的方式:这些情况本身就是需要面向对象的完美示例。

也可以看看:

http://php.net/manual/en/language.oop5.php

http://php.net/manual/en/language.exceptions.php

于 2012-06-03T13:37:27.100 回答