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 オブジェクト ( [ユーザーID] => 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 に答える