我很尴尬。PHP如果条件
我有三个函数来检查用户当前登录是什么:
public function isAuthor(User $user)
{
return $user->getId() === $this->getDestination();
}
public function isSupervisor(User $user)
{
return $user->getId() === $this->getFirstApprover();
}
public function isSecondApprover(User $user)
{
return $user->getId() === $this->getSecondApprover();
}
然后,我想里面添加我的行动的条件来检查,如果用户是任何上述三人。如果他不是其中之一,应该拒绝访问。用户有时可能不止一个,但大多只有三个中的一个。
我是这样的第一想法,但显然它不能正常工作
if (!$object->isAuthor($this->getUser()) || !$object->isSupervisor($this->getUser()) || !$object->isSecondApprover($this->getUser())) {
throw new AccessDeniedException();
}
会有什么检查,如果用户是他们中的一个最好的办法?我应该创建一个全新的功能吗?
我应该使用这样的事:
if (!$object->isAuthor($this->getUser())) {
throw new AccessDeniedException();
} elseif (!$object->isSupervisor($this->getUser())) {
throw new AccessDeniedException();
}
我可以请有从别人的一些想法和投入?因为我现在很困惑。 还在这里一个新手
在第一条件条件试验中使用'&&而不是'||' – jitendrapurohit
*“但显然它不能工作”* - 为什么不呢?你只是混淆了你的布尔逻辑。你想'不是X并且不是Y AND不是Z',换句话说*“不是这些”*。目前,你正在表达*“如果这些中的任何一个是假的”* ... – deceze