我有一个 if 表达式,我想在其中检查数组和另一个变量中的一些项目。我原来的 if 表达式是这样的:
if(!in_array($user->id, array($lsp->created_by_id, $lsp->approving_committee_pri_id, $lsp->approving_committee_sec_id)) or $user->level != 5)
{
$error[] = 'You do not have permissions to modify this.';
}
但是,我没有得到预期的结果。本质上,如果用户的 id 不在数组中或者用户的访问级别不等于 5,那么它应该填充$error
数组。即使当我修改数据库使用户的 id 在数组中或他的访问级别等于 5 时,它仍在填充$error
数组。
我必须将我的代码修改为此才能工作,这与我之前的代码相反:
if(in_array($user->id, array($lsp->created_by_id, $lsp->approving_committee_pri_id, $lsp->approving_committee_sec_id)) or $user->level == 5)
{
//does nothing
}
else
{
$error[] = 'You do not have permissions to modify this.';
}
我究竟做错了什么?我想在一行中做到这一点,但也许我没有正确理解某些东西。我正在使用 PHP 5.4.14。谢谢!