函数返回 int 而不是布尔值


Functions returns int instead of bool

我得到了一个非常简单的函数来检查数据库中是否存在电子邮件。它应该返回truefalse,但它返回10

function isUniqueEmail($email){
    global $database;
    $user_email = $database->prepare("SELECT * FROM users WHERE email=:email LIMIT 1");
    $user_email->execute(array('email' => $email));
    return ($user_email->rowCount() === 0) ? true : false;
}

会是什么?

使用 print_r 时,它不会像您想象的那样打印(布尔(值。 它将其转换为数字 1 表示真,甚至不转换为假数。 要检查该用途,请使用var_dump 。 所以是的,您的函数返回布尔值,但要检查变量的类型和值,请使用 var_dump .

正如DataHerder已经指出的那样,问题的原因很可能是布尔值在回显时显示为整数。这是一个例子。