在文件的顶部,我想检查用户权限,例如如果登录,如果用户有权访问该页面,那么他们可以看到哪些内容,如果内容是由用户自己发布的,是否已通过所有必要参数(例如POST
- vars)等。
所以,问题是,你会建议什么是最好的方法(代码仍然可读和可理解,对特殊页面来说不太具体,以便它可以在每个页面上实现,因为许多检查需要一个数据库查询等。)
我问的原因是,因为现在我正在做这样的事情:
if($logged_in!=1) {$error="err1";}
else {
if(...) {...}
else {...}
}
所以,基本上如果一个检查返回拒绝访问,代码将不会通过所有其他if
但会立即中断。我不使用exit
或die
因为我确实要显示页面(没有内容而是错误框),所以如果我使用exit
或die
它会不显示以下任何其他代码...
你建议做什么?
非常感谢你的帮助。
答案 0 :(得分: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());
}
一般来说,即使这不是最美丽的方式:这些情况本身就是面向对象需求的完美例子。
另见: