0

任何人都可以解释为什么这不起作用:

$USER->id是登录用户。

  $contextroles = get_records_sql("SELECT userid FROM {$CFG->prefix}role_assignments WHERE contextid = 23 AND roleid = 3");
        
        if (in_array($USER->id, $contextroles)) {
        echo'your in<br />';
        echo $USER->id.'<br />';
        print_r($contextroles);
        }
        
        else{
        echo'Access denied<br />';
        echo $USER->id.'<br />';
        print_r($contextroles);
        }

这是输出:

拒绝访问

5410

数组 ( [7] => stdClass 对象 ( [userid] => 7 ) [9] => stdClass 对象 ( [userid] => 9 ) [27] => stdClass 对象 ( [userid] => 27 ) [98] => stdClass 对象 ( [userid] => 98 ) [203] => stdClass 对象 ( [userid] => 203 ) [252] => stdClass 对象 ( [userid] => 252 ) [5410] => stdClass 对象 ( [用户名] => 5410 ) )

任何帮助将不胜感激。

4

1 回答 1

1

$contextroles 是一个对象数组,您正在搜索的针在对象内。in_array 无法处理对象,因此它失败了。您可以使用以下代码片段来获得所需的结果:

http://www.php.net/manual/en/function.in-array.php#105937

于 2011-09-29T16:34:12.743 回答