错位的支架?我的代码出了什么问题?

时间:2012-06-22 11:47:16

标签: php

在下面的代码中,我认为我搞砸了这一部分:if ( (1 || 2) != $current_user->ID )。也许是一个错位的支架,我不确定。我不熟悉PHP,所以我确信这是一个简单的错误。

if ( (1 || 2) != $current_user->ID ) {
add_action('admin_menu', 'remove_menus_users');
}

如果有人可以帮助我,我会很感激。

4 个答案:

答案 0 :(得分:2)

以下更正可以解决您的问题。

if ( 1 != $current_user->ID && 2 != $current_user->ID) {
add_action('admin_menu', 'remove_menus_users');
}

答案 1 :(得分:1)

if归结为if ((true) != $current_user->ID )。如果要为多个条件测试一个变量,请每次检查:

if (($current_user->ID == 1) || ($current_user->ID == 2)) ...

但你可能想看看角色。如果您的网站变得非常繁忙,并且您想要分配另一个用户管理员权限但他的ID为872,您要对此ID进行硬编码会怎样?

答案 2 :(得分:0)

试试这个

 if($current_user->ID != 1 || $current_user->ID != 2){
     add_action('admin_menu', 'remove_menus_users');

 }

答案 3 :(得分:0)

你的逻辑是有缺陷的。你不能拥有“如果它不等于数字,或者它不等于不同的数字”,因为它总是不等于其中之一。

您还应该撤消比较顺序。将变量与数字匹配,而不是将数字与变量匹配以下假设您要确保当前用户ID不等于1或2.

if ($current_user->ID!=1 && $current_user->ID!=2) {

}