interface User {
public function canCreatePage();
public function canDeletePage();
public function canEditPage();
....
}
class Admin implements User {
public function canCreatePage(){
return true;
}
public function canEditPage(){
return true;
}
...
}
class Editor implements User {
public function canCreatePage() {
return false;
}
public function canEditPage(){
return true;
}
...
}
然后从你在数据库中得到的
if ($row['user_type'] == 'Admin') {
$user = new Admin();
} else if $row['user_type'] == 'Editor') {
$user = new Editor();
} ....
在您的所有页面中:
if ($user->canCreatePage()){
//continue the script.....
}else{
//don`t continue
}
如果您想在第一次从数据库中获取用户时将其存储在会话中
$_SESSION['user'] = serialize($user);
在下一页
$user = unserialize($_SESSION['user']);
或者您也可以将用户的 id 存储在 session 中,然后在每个页面上从 de DB 中取回。