0

私は今moodleを研究していますが、正しい答えが見つからないようです...

public static function exists($user, $course){
    return self::$DB->record_exists('completion_ext', array(
        'user_id'=>$user,
        'course'=>$course

    ));
}

私はこのコードを作成し、それをエコーし​​ようとしました...関数のクラスは名前が付けられcompletion_extているので、私が行くとき

echo completion_ext::exists(1, 3);

それはエコーする必要がありますtruefalse?助けが必要です

上記のコードを実行すると、空白になります...真でも偽でもなく、空白です

4

3 に答える 3

0

それはエコーする必要がありますtruefalse

いいえ。何もエコーしません( false) または1( true)。マニュアルのブール値から文字列への変換を参照してください。を使用echoすると、PHP がすべてを文字列に変換します。

于 2012-06-02T00:30:14.207 に答える
0

これはブール値trueまたはfalseを返しますが、ブール値の結果をエコーすると、ブール値がtrueの場合は1に、falseの場合は何も変換されない文字列にキャストされます。

1 になるはずなのに 1 が得られない場合は、これを実行してデータベース クエリの問題がないことを確認してください。

public static function exists($user, $course){
    try {
        return self::$DB->record_exists('completion_ext', array(
            'user_id'=>$user,
            'course'=>$course

        ));
    } catch (Exception $ex) {
        echo $ex->getMessage();
        if (!empty($ex->error)) {
            echo $ex->error;  // since dml_exception stores it here
        }
    }
}

それでも問題が解決しない場合は、デバッグがオンになっていて、管理設定からずっと上にあることを確認し (デバッグを検索するだけです)、関数を呼び出す前にヘッダーを出力するようにしてください。あなたのクラスは、ローカルの $DB パラメータをシステムのグローバルな $DB パラメータに設定すると思いますか?

于 2012-06-18T17:26:25.197 に答える
0

使用する前に $DB 変数を宣言します。

于 2013-11-05T10:34:19.413 に答える